提取数据帧的各个部分

时间:2012-02-08 17:02:44

标签: r

我需要使用之前生成的值来提取数据帧的一部分。例如,我有以下数据:

a<-c(1,2,3,4,6,7,10,12,17,20)
df1<-data.frame(a)

然后我想在df2中出现排除这些值(df1中的“a”),当它们出现在b列中时:

b<-c(1,2,3,4,5,6,6,6,7,8,9,10,11,11,11,12,13,14,14:20)
c<-c(1:25)
df1<-data.frame(b,c)

所以,我应该留下一个包含行5,8,9,11等的数据框......

任何人都可以帮我解决从我的数据框(df1)中删除这些值的问题。

非常感谢。

1 个答案:

答案 0 :(得分:2)

对于这类事情,

subset()将成为你的好朋友:

subset(df1, !b %in% a)

(子表达式b %in% a测试b的每个元素以确定它是否在a中,返回TRUE s和{{1}的向量} {es} FALSE只是否定/翻转那些布尔值,这样你最终会得到一个逻辑向量索引!b %in% a s TRUE你要保留的行{ie}那些出现在a)中。)