在我的代码中,我用向量填充数据框的列,如下所示:

df1[columnNum] <- barWidth

除一件事外,此方法工作正常:我希望向量变量的名称(上面的barWidth)保留为列标题,一次保留一列。此外,我不想使用cbind。这大大降低了我的代码执行速度。因此,我正在使用预分配的数据帧。

可以在向量到列分配中完成此操作吗?如果不是,那我该如何更改?我找不到正确的语法来使用colNames()做到这一点。

TIA

最佳答案

如果您有要应用的向量名称列表,则可以执行以下操作:

namevec <- c(...,"barWidth"...,)
columnNums <- c(...,10,...)

df1[columnNums[i]] <- get(namevec[i])
names(df1)[columnNums[i]] <- namevec[i]

甚至
columnNums <- c(barWidth=4,...)
for (i in seq_along(columnNums)) {
   df1[columnNums[i]] <- get(names(columnNums)[i])
}
names(df1)[columnNums] <- names(columnNums)

但更深层的问题是,这组向量首先来自何处:您能否一直将它们放在列表中?

07-26 09:09