R - 对具有相似名称的多个变量使用rbind

时间:2013-09-29 03:41:29

标签: r rbind

我使用以下代码创建了许多变量:

for (i in 1:10) {
    assign(paste0("variable", i), i )}

我现在需要在变量上使用rbind来组合它们。我试过这样的事情无济于事:

rbind(assign(paste0("variable", 1:10)))

有关该怎么做的任何建议?

2 个答案:

答案 0 :(得分:11)

这是处理相关项目的错误方法。最好使用列表或数据框,但您可能会在适当的时候找出原因。现在:

do.matrix <- do.call(rbind, lapply( ls(patt="variable"), get) )

或者:

do.matrix <- do.call(rbind, lapply( paste0("variable", 1:10) , get) )

答案 1 :(得分:1)

我想添加另一种方法来合并多个动态名称的数据帧。这将通过使用mget中的bind_rowsdplyr完成。

# 3 Data frames are created
TXN_MONTH_01 <- data.frame(a = 1:10, b = 101:110)

TXN_MONTH_02 <- data.frame(a = 11:20, b = 111:120)

TXN_MONTH_03 <- data.frame(a = 21:30, b = 121:130)

#create a list using dynamic names of dataframes
z <- as.list(mget(paste("TXN_MONTH_0", 1:3, sep="")))
library(dplyr)
#now call bind rows
bind_rows(z)
#    a   b
#1   1 101
#2   2 102
#3   3 103
#4   4 104
#5   5 105
#.....
#.....
#25 25 125
#26 26 126
#27 27 127
#28 28 128
#29 29 129
#30 30 130