在我的代码中,我用向量填充数据框的列,如下所示:
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)
但更深层的问题是,这组向量首先来自何处:您能否一直将它们放在列表中?