首页 > 解决方案 > 有没有办法在合并数千个数据帧时在 R 中创建重复列?

问题描述

我需要按日期在 R 中合并大约 19000 个数据帧,然后再与一个数据帧合并。我需要将数据放在单独的列中,以执行对 19000 个数据帧中的每一个进行回归建模的循环。

我尝试使用合并命令,但所有数据框共享相同的列,“日期”和“RET”,合并命令不允许超过 3 个重复,因为它仅限于名称本身,名称与.x 结尾,名称以 .y 结尾。我希望这些列由它们来自的数据集编号。例如,我希望第一列中有“DATE”,然后是“RET1”、“RET2”和“RET3”,以此类推,直到 19000 左右。我还尝试弄清楚如何通过编号为 RET1、RET2 等来重命名所有列,但我也找不到解决方案。

这是未能按列重命名名称:

for (j in 1:19938){
  colnames(HPR_Split_New[[j]]) <- c("DATE",j)
}

这是将所有数据库合并在一起的失败:

merged.data.frame = Reduce(function(...) merge(..., by=c('DATE'), all=T), HPR_Split_New)

对于重命名失败,我希望将列名重命名为 RET1、RET2 等,但代码实际上什么也没做。

对于合并失败,它说重复太多,无法再合并。这是错误之一:

47: In merge.data.frame(..., by = c("DATE"), all = T) :
  column names ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’, ‘RET.x’, ‘RET.y’ are duplicated in the result"

请帮我。我以前没有使用过 R,并且已经坚持了一个多星期来组合这些数据框。

标签: rdataframemerge

解决方案


推荐阅读