我需要使用另一个数据框中的信息过滤一个数据框。列的名称和列数可以根据用于选择的条件数而变化。例如,我想要选择的数据框具有以下结构:
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循环中完成,但显然它不是最有效的方法。
答案 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