我有一长串值,我想用它作为索引来从另一个数据框中删除行,该数据框在特定列包含此值。
一个简单的例子就是
X <- data.frame(Variable1=c(11,14,12,15),Variable2=c(2,3,1,4))
X[X$Variable1!=11 & X$Variable1!=12, ]
但是有没有有效的方法将数据框与我拥有的值一起使用,这是我想在第二个数据帧中使用的列表?
答案 0 :(得分:1)
我们可以使用%in%
根据多个值创建逻辑索引。
X[!(X$Variable1 %in% c(11, 12)),]
如果我们使用的是data.table
,则选项set
为key
,然后否定值
library(data.table)
setDT(X, key = "Variable1")[!.(c(11,12))]
# Variable1 Variable2
#1: 14 3
#2: 15 4
或者我们使用on
作为@David Arenburg发表评论
setDT(X)[!.(11:12), on = "Variable1"]