2014-04-02 41 views
0

我有一個10K行和6列的數據框。前兩列是因素。基於列屬性的遞歸數據子集R

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 到其他組合是類似

+0

我假設你只對數據框的前兩列感興趣,以調用你的函數。是對的嗎? – Jealie

+0

不,我需要根據A和B的不同組合來選擇行 – Jin

回答

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))), ])) 
+0

你能在這裏解釋一下嗎?應該如何將F應用於每個子集? – Jin

+0

括號內的語句選擇A和B匹配'c(A1,B1)','c(A1,B2)'等 –