我已经生成了10个数据帧S1到S10。现在我想使用S1到S10以不同的组合创建另外10个数据帧T1到T10。每个T集将有9个S集。
实施例,
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.
如何使用for循环生成T1到T10,假设S1到S10数据帧具有相同数量的列,并且在S1到S10之间标题相同。
非常感谢任何帮助。如果不是循环,建议任何其他功能。
谢谢。
答案 0 :(得分: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
使用了一个循环。