我需要使用之前生成的值来提取数据帧的一部分。例如,我有以下数据:
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)中删除这些值的问题。
非常感谢。
答案 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)中。)