在R中同时更改数百个列名

时间:2014-07-23 03:15:57

标签: r dataframe

我有一个包含数百列的数据框,我想要更改其名称。我对R很新,所以通过这个逻辑很容易思考,但我在网上找不到相关的例子。

我能得到的最接近的是:

projectFileAllCombinedNames <- for (i in 1:200){names(projectFileAllCombined)[i+1] <-variableNames[i]}

基本上,从projectFileAllCombined的第二列开始,我想循环遍历数据框中的列,并在第二个数据框中为它们分配数据值。我可以使用以下代码手动更改一个列名:

colnames(projectFileAllCombined)[2]<-"newColumnName"

但我不可能为数百列做到这一点。我花了几个小时就完成了这项工作,无法通过“更改r中的多个列”或“更改r中的列名”进行任意数量的Google搜索。我在网上找到的最好的例子是人们用ac()函数改变了一些列,我得到了它的工作方式,但这似乎仍然需要输入所有列名作为函数的参数,除非有办法只需将“variableNames”文件传递给c()函数,但我不知道它。

1 个答案:

答案 0 :(得分:1)

威尔

colnames(projectFileAllCombined)[-1] <- variableNames

不够吗?

这假设projectFileAllCombined中列的排序与variableNames中新变量名称的排序相同,并且

length(variableNames) == (ncol(projectFileAllCombined) - 1)

这里的关键点是替换函数'colnames<-'()是矢量化的,并且如果传递了替换值的向量,则可以在单个调用中替换任意数量的列名。