【发布时间】:2016-11-09 20:58:52
【问题描述】:
我有很多文件名 ["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]
【问题讨论】:
-
只需
names(df) <- filenames -
即使在 Python pandas 中,您也可以避免循环,因为列是列表:
df.columns = filenames
标签: r