我有一个清单:
L <- c("a","b","c","d","e")
我也有这个列表的一个子集:
L1 <- c("b","d","e")
我正在尝试创建一个不包含子集列表的新列表。
我试过了:
L[L!%in%L1]
L[L%in%!L1]
L[L%in%-L1]
但这不起作用。 我很感激你的帮助。
答案 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)