通过查找更改列名称

时间:2011-09-27 20:46:47

标签: r dataframe

我知道我可以通过以下方式更改data.frame列名:

colnames(df)[3] <- "newname"

但是可能存在我想要更改的列不在第3位的情况。有没有办法按名称查找列并更改它?像这样......

colnames(df)[,"oldname"] <- "newname"

顺便说一句,我已经尝试过这段代码而且我不断获得incorrect number of subscripts on matrix

感谢。

3 个答案:

答案 0 :(得分:16)

colnames(df)[colnames(df)=="oldname"] <- "newname"

或仅names

names(df)[names(df)=="oldname"] <- "newname"

还有各种函数可以重命名包中的列。

答案 1 :(得分:5)

colnames(df)[colnames(df)=="oldname"] <- "newname"

names(df)[names(df)=="oldname"] <- "newname"

(因为namescolnames等同于数据框)

您可能正在寻找

library(reshape)
df <- rename(df,c(oldname="newname"))

答案 2 :(得分:3)

一种更通用的方法,将在同一个字符位置使用“new”替换任何当前名称开头的所有“旧”:

names(df) <- sub("^old", "new", names(df) )