R中数据帧的灵活过滤器

时间:2016-08-09 08:49:52

标签: r select filter

我需要使用另一个数据框中的信息过滤一个数据框。列的名称和列数可以根据用于选择的条件数而变化。例如,我想要选择的数据框具有以下结构:


name   info_1    info_2  info_3 info_4  value 
var1    aa       123       bb     xx1   120
var2    bb       345       cc     xx2   520
var3    aa       122       cc     xx1   640
var4    dd       345       dd     xx3   540
...

和包含过滤器信息的数据框:


info_1  info_3  info_4
   aa      bb    xx1
   bb      cc    N/A
   dd      N/A   N/A
...

对于不同的数据集,第一个数据框中的列数和应该用于过滤器的列数可能不同。 是否有有效的方法进行此类过滤?我认为过滤可以在每个列的for循环中完成,但显然它不是最有效的方法。

1 个答案:

答案 0 :(得分:0)

你当然在寻找:

df[Reduce('&', Map(function(u,v) v%in%u, filtering_df, df[names(filtering_df)])),]

#  name info_1 info_2 info_3 info_4 value
#1 var1     aa    123     bb    xx1   120
#3 var3     aa    122     cc    xx1   640