【问题标题】:Remove specific characters from values in dataframe in R [duplicate]从R中数据框中的值中删除特定字符[重复]
【发布时间】:2017-12-14 13:47:07
【问题描述】:

我是 R 新手,我有一个数据框,其中有一个字符类列,格式如下:

> head(unique(season_advanced_stats$Player))
[1] "alex abrines\\abrinal01"  "quincy acy\\acyqu01"      "steven adams\\adamsst01" 
[4] "arron afflalo\\afflaar01" "alexis ajinca\\ajincal01" "cole aldrich\\aldrico01" 

我尝试使用 gsub,但每次我输入以下代码时,Rstudio 一直输出“+”符号,表明我还没有完成某些事情:

season_advanced_stats$Player = gsub('\', '', season_advanced_stats$Player)

如果有人可以帮助我弄清楚如何正确使用 gsub,以便只剩下玩家姓名,我将不胜感激!

【问题讨论】:

  • 您还想删除数字吗?如果没有,请尝试gsub("\\\\", "",season_advanced_stats$Player)
  • 我想删除“\\”以及反斜杠后面带有数字的缩写名称。
  • 然后试试这个:gsub("\\\\|\\d", "",season_advanced_stats$Player)
  • 这很接近,但它仍然输出反斜杠后的字符。你如何建议我删除反斜杠之后的所有内容,以便只保留反斜杠之前的玩家姓名?

标签: r regex dataframe rstudio gsub


【解决方案1】:

您需要转义/。目前,R 认为在gsub 之后的'\', ' 是单个字符串,因为/ 实际上是在转义第一个',使得R 忽略它直到结束第一个字符串为止。它会给你一个+ 作为最后一个' 的提示,它认为它仍在等待。

season_advanced_stats$Player = gsub('\\', '', season_advanced_stats$Player)

应该可以。

this question

【讨论】:

    【解决方案2】:

    您可以使用 using 删除反斜杠后的所有内容

     gsub("\\\\.*", "", data/vector)
    

    我的例子

    v <- c("alex abrines\\abrinal01" , "quincy acy\\acyqu01") 
    
    gsub("\\\\.*", "", v)
    

    然后输出

    [1] "alex abrines" "quincy acy" 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多