R - 如何删除满足几个条件之一的向量中的项目

时间:2012-01-25 18:50:03

标签: r

我有一个包含一列名称的大型数据框,并根据我的数据的性质重复这些名称。我还有一个我需要从该数据帧中消除的那些名称子集的向量。所以我想确定每个实例的行号,数据框中的名称与要删除的名称列表中的名称相匹配。这是我正在尝试做的一个例子......但我无法让代码工作。谢谢!

a=c("tom", "bill", "sue", "jim", "tom", "amy")
b=c(12,15,7,22,45,5)

ab=data.frame(a,b)

ab

drop=which(ab$a==c("tom", "sue")) #only identifies those matching "tom"

drop

ab2=ab[-drop,]

ab2

2 个答案:

答案 0 :(得分:9)

您正在寻找%in%

drop=which(ab$a %in% c("tom", "sue"))
然而,更简洁:

ab[!ab$a %in% c('tom', 'sue'),]

答案 1 :(得分:1)

你应该看一下sqldf包。 您可以在R数据帧上执行SQL选择。