首页 > 解决方案 > 在这种情况下,错误消息“列名不得重复”是什么意思

问题描述

我正在尝试将第 5 列中的一个值之后的 4 行(我用 j 索引)的值写入第 16 到 20 列(这是 [j+15]。这里是列表的一个数据框(第一个)(解决了许多数据帧的 SKUlist)。知道有什么问题吗?

for (i in 1:length(SKUlist[[1]]) {
  for (j in 1:4) {
    SKUlist[[1]][i, j+15]=SKUlist[[1]][i+j,5]
  }
}

错误消息是“列名nameofcol5不能重复”。

标签: rfor-loop

解决方案


它首先在列表中的所有数据帧中插入虚拟列(每行中的值为 0)。谢谢你。

for (a in 1:length(SKUlist)) {
      SKUlist[[a]]$"newcol1"=0
      SKUlist[[a]]$"newcol2"=0
      SKUlist[[a]]$"newcol3"=0
      SKUlist[[a]]$"newcol4"=0
      }
    for (a in 1:length(SKUlist)){
      for (i in 1:nrow(SKUlist[[a]])) {
        for (j in 1:4){
          SKUlist[[a]][i,j+15]=SKUlist[[a]][i+j,5]
        }
      }
    }

推荐阅读