【问题标题】:Replacing a string in column names in dataframe in R with grepl用grepl替换R中数据框中列名中的字符串
【发布时间】:2017-03-19 21:11:05
【问题描述】:

我有一个数据框,其中一些列以我要删除的“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))

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

您的建议将不胜感激。

【问题讨论】:

  • 你的意思是只想删除列名中的“PROFESSION”?
  • 您需要在gsub 中添加fixed = TRUE(即gsub("dfall$PROFESSION", "", "dfall$PROFESSIONFarmer", fixed = TRUE)....或避开$(即gsub("dfall\\$PROFESSION", "", "dfall$PROFESSIONFarmer")

标签: r dataframe gsub


【解决方案1】:

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

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

您无法摆脱dfall$ 部分。这实际上并不是列名的一部分,而是 dfall$PROFESSIONEngineer 指定了 dfall data.frame 的 PROFESSIONEngineer 列。

【讨论】:

  • 如果我需要替换多个字符::()?
  • @ahbon 我不确定你想用什么替换什么。如果您想删除:() 的任何实例,请尝试gsub("[:()]", "", String)
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 2023-02-23
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多