【问题标题】:Dropping characters from a string [duplicate]从字符串中删除字符[重复]
【发布时间】:2019-09-19 00:31:35
【问题描述】:

我正在处理以下字符串:

 "I(x - lambda * WX)(Intercept)"                     "I(x - lambda * WX)pres_dem_two_party_vote_percent"
 "I(x - lambda * WX)dem_seat"                        "I(x - lambda * WX)forgnpct"                       
 "I(x - lambda * WX)blackpct"                        "I(x - lambda * WX)log_people_per_mi2"    

我想从字符串中删除:I(x - lambda * WX),这样剩下的就是:

"(Intercept)"                     "pres_dem_two_party_vote_percent"
"dem_seat"                        "forgnpct"                       
"blackpct"                        "log_people_per_mi2"    

我曾尝试使用 gsub 和 str_replace,但没有成功。

您能提供任何帮助,我将不胜感激。非常感谢!

【问题讨论】:

标签: r string gsub stringr


【解决方案1】:

由于字符串中有一些特殊字符要删除,请在 sub 中使用 fixed = TRUE

sub("I(x - lambda * WX)", "", x, fixed = TRUE)

#[1] "(Intercept)"                     "pres_dem_two_party_vote_percent"
#[3] "dem_seat"                        "forgnpct"                       
#[5] "blackpct"                        "log_people_per_mi2"   

或者转义所有特殊字符

sub("I\\(x - lambda \\* WX\\)", "", x)

数据

x <-  c("I(x - lambda * WX)(Intercept)",
        "I(x - lambda * WX)pres_dem_two_party_vote_percent",
        "I(x - lambda * WX)dem_seat" ,"I(x - lambda * WX)forgnpct",
        "I(x - lambda * WX)blackpct",  "I(x - lambda * WX)log_people_per_mi2" )      

【讨论】:

  • 哇,我不知道这是一个选项,并且字符串中的特殊字符需要区别对待。非常感谢你的帮助!我真的很感激,我学到了一些新东西。
  • 对于那些使用正则表达式的人,引用“(”的代码是“\(”)。
猜你喜欢
  • 1970-01-01
  • 2012-04-08
  • 2018-02-20
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
相关资源
最近更新 更多