基于R中的列属性的递归数据子集

时间:2014-04-02 00:00:53

标签: r loops recursion

我有一个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)×(B1,B2,B3)。我想知道如何在没有显式循环的情况下高效地执行此操作?

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

1 个答案:

答案 0 :(得分: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))), ]))