R从列表中删除子列表中的项目

时间:2014-10-26 11:54:11

标签: r

我有一个清单:

L <- c("a","b","c","d","e")

我也有这个列表的一个子集:

L1 <- c("b","d","e")

我正在尝试创建一个不包含子集列表的新列表。

我试过了:

L[L!%in%L1]
L[L%in%!L1]
L[L%in%-L1]

但这不起作用。 我很感激你的帮助。

2 个答案:

答案 0 :(得分:5)

应该是

L[!(L %in% L1)]

由于运算符优先级(?Syntax),您也可以执行

L[!L %in% L1]

最后,你还有:

setdiff(L, L1)

答案 1 :(得分:3)

你也可以玩vecsets:vsetdiff(免责声明:我写了这个可怕的包)。与setdiff中实现的正确集合理论不同,vsetdiff将返回未出现在第二个参数中的向量的所有元素,从而允许给定值的多个实例。

vsetdiff(L,L1)
[1] "a" "c"
vsetdiff(L1,L)
character(0)