使用for循环调用多个变量

时间:2017-10-23 11:34:49

标签: r

我想使用for循环组合来自变量列表的两个数据帧。我正在使用以下代码来逐列创建和组合数据框。

mvn dependency:build-classpath

2 个答案:

答案 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)
}