【问题标题】:recursive data subset based on column attributes in R基于R中列属性的递归数据子集
【发布时间】:2014-04-02 00:00:53
【问题描述】:

我有一个包含 10K 行和 6 列的数据框。前两列是因子。

 A     B     C     D      E       F
 A1    B1   0.1   0.2    0.3      0.4
 A2    B2   .........................
 A1    B3   .........................
 A1    B1   0.3   ...................

现在我想根据不同的数据子集(不同的行)生成模型(使用我的函数 F),即 A 和 B 属性的不同组合。

在我上面的例子中,我应该用笛卡尔产生的 A 和 B 调用我的函数 F 6 次 (A1,A2) x (B1,B2,B3)。我想知道如何在没有显式循环的情况下在 R 中有效地做到这一点?

为了避免混淆 例如,将 F 应用于 (A1,B1) 组合,在这种情况下,第 1 行和第 4 行,第 3 到第 6 列。 与其他组合类似

【问题讨论】:

  • 我假设您只对数据框的前两列感兴趣以调用您的函数。对吗?
  • 不行,我需要根据 A 和 B 的不同组合选择行

标签: r loops recursion


【解决方案1】:

试试:

lapply(seq_len(length(df$A)*length(df$B))-1, function(x)
  myFunction(df[df$A == paste0("A",1+floor(x / length(df$B))) &
                df$B == paste0("B",1+(x %% length(df$B))), ]))

【讨论】:

  • 你能在这里解释一下吗?应该如何将 F 应用于每个子集?
  • 括号内的语句选择匹配c(A1,B1)c(A1,B2)等的A和B。
猜你喜欢
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 2020-02-25
  • 2014-01-04
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 2014-05-14
相关资源
最近更新 更多