【问题标题】:Flexible filter for data frame in RR中数据框的灵活过滤器
【发布时间】:2016-08-09 08:49:52
【问题描述】:

我需要使用来自另一个数据框的信息来过滤一个数据框。名称和列数可能会有所不同,因为用于选择的条件数。例如,我想从中选择的数据框具有以下结构:


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 循环中完成,但显然这不是最有效的方法。

【问题讨论】:

  • 根据所示示例,您的预期输出是什么? filtering 表示您要保留/删除哪些值等?

标签: r select filter


【解决方案1】:

您肯定在寻找:

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

【讨论】:

  • 我怀疑这可以通过连接操作更优雅地解决,但谁知道......预期的结果并不明确。
  • 非常感谢!这就是我一直在寻找的。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 2019-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
相关资源
最近更新 更多