【发布时间】:2023-03-26 02:33:01
【问题描述】:
我有很多变量是我使用这样的代码创建的:
for (i in 1:10) {
assign(paste0("variable", i), i )}
我现在需要对变量使用 rbind 来组合它们。我尝试过这样的事情无济于事:
rbind(assign(paste0("variable", 1:10)))
有什么建议吗?
【问题讨论】:
我有很多变量是我使用这样的代码创建的:
for (i in 1:10) {
assign(paste0("variable", i), i )}
我现在需要对变量使用 rbind 来组合它们。我尝试过这样的事情无济于事:
rbind(assign(paste0("variable", 1:10)))
有什么建议吗?
【问题讨论】:
我想添加另一种方法来合并具有动态名称的多个数据框。这将通过使用来自dplyr 的mget 和bind_rows 来完成。
# 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
【讨论】:
这是处理相关项目的错误方式。最好使用列表或数据框,但您可能会在适当的时候找出原因。现在:
do.matrix <- do.call(rbind, lapply( ls(patt="variable"), get) )
或者:
do.matrix <- do.call(rbind, lapply( paste0("variable", 1:10) , get) )
【讨论】: