r - 对多个向量调用 setdiff()

标签 r

如何在 R 中使用 setdiff() 来获取一个向量中但不在其他向量中的元素我的示例如下:

dat1 <- c("osa", "bli", "usd", "mnl")
dat2 <- c("mnu", "erd", "usd", "mnl")
dat3 <- c("ssu", "erd", "usd", "mnl")

以下代码仅返回 dat1 与 dat2 和 dat3 相比的不同之处:

diffs <- Reduce(setdiff, 
        list(A = dat1,
             B = dat2,
             C = dat3
)

如何修改此代码,以便能够获取与另一个向量相比唯一存在于一个向量中的所有元素?谢谢

最佳答案

使用setdiff的另一个解决方案:

myl <- list(A = dat1,
            B = dat2,
            C = dat3)
lapply(1:length(myl), function(n) setdiff(myl[[n]], unlist(myl[-n])))

[[1]]
[1] "osa" "bli"

[[2]]
[1] "mnu"

[[3]]
[1] "ssu"

关于r - 对多个向量调用 setdiff(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22684475/

相关文章:

R:计算第一个非零之后所有值的方差

r - 在 R 中寻找更好的方法来按字段的一部分进行分组

regex - R中位置序列的长度(以字符串形式给出)

r - 如何正确标记组中第一个序列的结尾?

r - 使用 R 绘制润滑周期

r - 理解 R 中的词法作用域

r - 按组计算最小值和最大值(范围)

python - 在 Windows 上编译 rpy2 需要什么设置?

r - 如何更改 pheatmap 中的注释颜色?

r - is.list 在 tibble 列上总是返回 true?