r - 在 for 循环中将数据帧附加在一起

标签 r

我有一个for循环,它在每次迭代后生成一个数据帧。我想将所有数据框附加在一起,但发现很困难。以下是我的 我正在尝试,请建议如何修复它:

d = NULL
for (i in 1:7) {

  # vector output
  model <- #some processing

  # add vector to a dataframe
  df <- data.frame(model)

}

df_total <- rbind(d,df)

最佳答案

不要在循环内执行此操作。制作一个列表,然后在循环外将它们组合起来。

n = 5
datalist = list()
# or pre-allocate for slightly more efficiency
datalist = vector("list", length = n)

for (i in 1:n) {
    # ... make some data
    dat <- data.frame(x = rnorm(10), y = runif(10))
    dat$i <- i  # maybe you want to keep track of which iteration produced it?
    datalist[[i]] <- dat # add it to your list
}

big_data = do.call(rbind, datalist)
# or big_data <- dplyr::bind_rows(datalist)
# or big_data <- data.table::rbindlist(datalist)

这是一种更像 R 的做事方式。它也可以更快,特别是如果您使用 dplyr::bind_rows 或 data.table::rbindlist 来最终组合数据帧。

关于r - 在 for 循环中将数据帧附加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402528/

相关文章:

r - 确定矩阵中无限元素的数量及其位置

r - 在 R 中为 Bing 情感词典添加新词

python - 算法 3D点云体积计算

R matlab 包 : why is repmat inconsistent?

r - 可以在不打开 R 环境的情况下运行 RShiny 应用程序吗?

r - 一次测试它和 covr

r - 将函数参数传递给 mle() 以获得对数似然

r - 如何在 geom_text 中使用 position_dodge with preserve = 'single'?

r - 约束最小二乘法

r - 在 Deducer 的线性回归模型构建器中包含二次项