我有一个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。 其他组合是类似的
答案 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))), ]))