2016-03-24 36 views
0

için farklı kombinasyonlarda bağlanırken S1'den S10'a kadar 10 veri çerçevesini oluşturdum. Şimdi farklı kombinasyonlarda S1 - S10 kullanarak T1 - T10 olmak üzere 10 adet daha fazla veri çerçevesi oluşturmak istiyorum. Her T Setin S Setlerinden 9'u olacaktır.r Bağlantılı veri çerçeveleri

örneği

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. 

nasıl sütun başlıkları ve eşit sayıda ile sağlanan S10 veri çerçeveleri S1 varsayarak, döngü kullanılarak T10 T1 oluşturmak S10 dışarı S1 ile aynıdır edebilir.

Herhangi bir yardım çok takdir edilmektedir. Döngü için değilse, başka bir işlev önerin.

Teşekkür ederiz.

cevap

2

İşte

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 kaputun altında bir döngü kullanan bir yoludur.