我使用一个循环来合并几个CSV文件。在每个文件中,都有一列包含一些信息。问题是在某些文件中,这一列被称为“IN FILE”,而在其他文件中,它被称为“IN.FILE”或“IN FILE*”。我想通过将所有这些列重命名为“IN.FILE”来使事情变得同质。
我试着这么做:
if (grepl("IN FILE|IN.FILE.|IN FILE*", first_line)) {
colnames(df)[colnames(df) == "IN FILE"|"IN.FILE."|"IN FILE*"] <- "IN.FILE" }
在这里,我尝试用正确的名字替换所有错误的名字,但是colname函数不接受多个参数。那么,如何在r中用only name重命名多个名字不同的列呢?
2条答案
按热度按时间zxlwwiss1#
如果这是你的数据
通过
grep
仅重命名您希望的名称但是这样就会有重复的列名。可以使用
64jmpszr2#
读取excel文件后,可以使用R基函数“names”重置列的名称
确保vector(在〈-之后)包括dataframe的所有列名(以及列名的顺序),包括那些您不想重置名称的列名。