r - 查找向量中重复或不在另一个向量中的元素

标签 r match

我有以下情况:

vec1  <- c("A", "B", "D", "C", "E", "A", "C")
vec2 <- c("A", "B", "C", "D", "F")

第一个问题:哪个是重复的? - 对 vec1 回答“A”和“C”,对 vec2 回答 0

第二个问题:确定哪个是 vec1 而不是 vec2,无论顺序如何(答案“E”)

反之亦然(答案“F”)
which(vec1 !=vec2)
which(vec2 !=vec1)

[1] 3 4 5 7
Warning message:
In vec1 != vec2 :
  longer object length is not a multiple of shorter object length

这不是我所期望的......

最佳答案

对于第一个问题,尝试 ?duplicated

vec1.dup <- duplicated(vec1)
unique(vec1[vec1.dup])

[1] "A" "C"

对于第二个,尝试 ?setdiff .您需要 vec1 中没有的 vec2 值。
setdiff(vec2, vec1)
[1] "F"

关于r - 查找向量中重复或不在另一个向量中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11336921/

相关文章:

r - 检查一个数据帧列中的值或模式与另一列是否匹配

r - 根据字符向量中的值将对象名称分配给 data.frames

c++ - 在 Rcpp 中有效地生成随机比特流

r - 如何根据 list() 中的相应值替换 dataframe() 中的值?

Mysql全文搜索match()过滤特定符号

python - 具有公差的最频繁子串

r - 选择包含特定叶子的子图(igraph)

r - 使用 hex_bin 将变量映射到六边形大小和颜色

javascript - 阿拉伯语和英语的正则表达式以及一些有限的特殊字符

r - 为 R 中的债券设置最低评级