我有一个很大的文件名列表[“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]
答案 0 :(得分:1)
无论是列表还是向量,您都可以执行
catch
答案 1 :(得分:0)
尝试
for (i in 1:ncol(df){
names(df[,i]) = filenames[i]}
答案 2 :(得分:0)
(代表OP发布)。
解决方案:
names(df)<-filesnames
谢谢大家的评论。这很有效。