用grepl替换R中dataframe中列名的字符串

时间:2017-03-19 21:11:05

标签: r dataframe gsub

我有一个数据框,其中一些列开头是'dfall $ PROFESSION'我想删除。即:

"dfall$PROFESSIONBusinessman"             "dfall$PROFESSIONDoctor"                 
[35] "dfall$PROFESSIONEngineer"                "dfall$PROFESSIONFarmer"                 
[37] "dfall$PROFESSIONHousewife"               "dfall$PROFESSIONLawyer"                 
[39] "dfall$PROFESSIONMissing"                 "dfall$PROFESSIONPensioner"

所以我试过了:

names(df_all) <- gsub("dfall$PROFESSION", "", names(df_all))

但是,这不会影响任何变化。你能解释一下吗?我该怎么做呢?

您的建议将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以使用gsub更改名称,但您还必须将其保存回data.frame。

colnames(dfall) = gsub("PROFESSION", "", colnames(dfall))

你无法摆脱dfall$部分。这不是列名称的一部分,而是dfall$PROFESSIONEngineer指定PROFESSIONEngineer data.frame的dfall列。