2016-03-24 14 views
0

私は10個のデータフレームS1〜S10を生成しました。ここでは、S1〜S10をさまざまな組み合わせで使用して、さらに10個のデータフレームT1〜T10を作成したいと考えています。各Tセットには9セットのSセットがあります。r forループ内で異なる組み合わせのデータフレームをバインドする

例、

T1 = rbind(S2,S3,S4,S5,S6,S7,S8,S9,S10) # If T1 is the set, S1 should not be there.  
. 
. 
. 
T10 = rbind(S1,S2,S3,S4,S5,S6,S7,S8,S9) # T10 not there. 

どのように列とヘッダの同数が設けられてS10のデータフレームにS1を仮定して、ループに使用してT10にT1を生成するS10へアウトS1を介して同じであることができます。

ご協力いただきまして誠にありがとうございます。 forループでない場合は、他の関数を示唆します。

ありがとうございます。

答えて

2

ここ

S1 <- data.frame(x=1) 
S2 <- data.frame(x=2) 
S3 <- data.frame(x=3) 

lst <- mget(grep("S\\d+", ls(), value = TRUE)) 
idx <- combn(1:length(lst), length(lst)-1)[, length(lst):1] 
res <- apply(idx, 2, function(x) { 
    do.call(rbind, lst[x]) 
}) 
names(res) <- paste0("T", 1:length(lst)) 
list2env(res, .GlobalEnv) 

applyは、ボンネットの下にループを使用しています一つの方法です。

関連する問題