我想使用for循环组合来自变量列表的两个数据帧。我正在使用以下代码来逐列创建和组合数据框。
mvn dependency:build-classpath
答案 0 :(得分:3)
您可以使用下面的一个衬垫:
do.call(cbind, mget(ls(pattern="^tu\\d+")))
它将在您的案例“tu”中将所有数据帧与类似模式组合在一起。
答案 1 :(得分:1)
修改:
OP解释说:“我有从tu1到tu117的117个数据帧。我希望将它们按列组合”。为此,他可以:foo <- grep("tu[1-117]", ls(), value = TRUE)
tuAll <- do.call(cbind, sapply(foo, function(x) get(x)))
旧回答:
我无法想象你为什么要像简单的cbind(tu1, tu2)
一样这样做。如果要多次绑定,可以使用cbind(tu1, tu2, tu1, tu2)
。
但是如果你想使用循环(不推荐)绑定它们,那么这是Consolidate()
函数的编辑版本:
tu1 <- data.frame(c(1,2,3), c(2,5,6))
tu2 <- data.frame(c(5,5,37), c(21,52,61))
Consolidate <- function() {
for(i in 1:2){
namefile <- paste0("tu", i)
if (i == 1) {
tx <- get(namefile)
} else {
tx <- cbind(get(namefile), tx)
}
}
return(tx)
}