我想用两个 data.frame 对象做一个 cbind。但是第一个是空的,只是为循环迭代创建的。我想知道是否可能。
当我尝试时:
data <- data.frame()
data1 <- cbind(data, mpg)
data.frame(..., check.names = FALSE) 错误: 参数表示不同的行数:0、234
我没有成功
我的循环有点长,但总的来说,我有大约 100 个文件,我需要在其中创建
taxa_col_name
变量,我需要将循环中生成的 data.frame 添加到一个 data.frame 中,这将是我的最终基地。
data <- data.frame()
for (i in 1:100) {
rate_col_name <- sprintf("rate_%s", i)
data1 <- data1 %>%
mutate(!!rate_col_name:=
(population_2000)*((population_2010/population_2000_previous)))
data1$population_2010 = NULL
data1$population_2000_previous <- NULL
rm(pop_2000_previous, pop_2010)
gc()
date <- cbind(date, date1)
}
最好先创建一个
list
数据集,然后再绑定它,即
lst1 <- vector('list', 100)
for (i in 1:100) {
rate_col_name <- sprintf("rate_%s", i)
data1 <- data1 %>%
mutate(!!rate_col_name:=
(population_2000)*((population_2010/population_2000_previous)))
data1$population_2010 = NULL
data1$population_2000_previous <- NULL
rm(pop_2000_previous, pop_2010)
gc()
lst1[[i]] <- data1
}
然后
cbind
列表元素为
data <- do.call(cbind, lst1)