我有一个包含数百列的数据框,我想要更改其名称。我对R很新,所以通过这个逻辑很容易思考,但我在网上找不到相关的例子。
我能得到的最接近的是:
projectFileAllCombinedNames <- for (i in 1:200){names(projectFileAllCombined)[i+1] <-variableNames[i]}
基本上,从projectFileAllCombined的第二列开始,我想循环遍历数据框中的列,并在第二个数据框中为它们分配数据值。我可以使用以下代码手动更改一个列名:
colnames(projectFileAllCombined)[2]<-"newColumnName"
但我不可能为数百列做到这一点。我花了几个小时就完成了这项工作,无法通过“更改r中的多个列”或“更改r中的列名”进行任意数量的Google搜索。我在网上找到的最好的例子是人们用ac()函数改变了一些列,我得到了它的工作方式,但这似乎仍然需要输入所有列名作为函数的参数,除非有办法只需将“variableNames”文件传递给c()函数,但我不知道它。
答案 0 :(得分:1)
威尔
colnames(projectFileAllCombined)[-1] <- variableNames
不够吗?
这假设projectFileAllCombined
中列的排序与variableNames
中新变量名称的排序相同,并且
length(variableNames) == (ncol(projectFileAllCombined) - 1)
这里的关键点是替换函数'colnames<-'()
是矢量化的,并且如果传递了替换值的向量,则可以在单个调用中替换任意数量的列名。