如何在 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/