重命名数据框中与R中的列表元素同名的列

时间:2016-11-09 20:58:52

标签: r

我有一个很大的文件名列表[“fname1”,“fname2”,...“fname50”]。

我想更改我正在使用的数据帧的列名以匹配文件名。例如,column1的名称应更改为fname1,column2的名称应更改为fname2,依此类推。实际的列名是cbind的结果,并且很长/很乱,所以它不仅仅是单字替换或任何东西。

我可以这样做一次性

>names(df)[1]<-filenames[1]

然而,我无法在循环中完成这项工作。

>for(i in df){names(df)[i]<-filenames[i]}
>error msg: 'names' attribute [39] must be the same length as the vector [5]

我通常使用Python工作,我可能在R中错误地处理循环。我很感激提示和技巧。谢谢!

在伪Python中,我正在寻找的是:

    for i in df-colnames:
        df-colnames[i] = filenames[i]

3 个答案:

答案 0 :(得分:1)

无论是列表还是向量,您都可以执行

catch

答案 1 :(得分:0)

尝试

for (i in 1:ncol(df){
names(df[,i]) = filenames[i]}

答案 2 :(得分:0)

(代表OP发布)

解决方案:

names(df)<-filesnames 

谢谢大家的评论。这很有效。