【问题标题】:R - gsub to remove punctuation & numbers from stringR - gsub 从字符串中删除标点符号和数字
【发布时间】:2019-02-16 02:59:33
【问题描述】:

我正在尝试从<U+200B>Chandler 中删除标点符号和数字以变为Chandler。这是我目前正在尝试的:

df$city <- gsub("[[:punct:]]|[[:digit:]]", "", df$city)

但是,它不会对 'df' 中的 'city' 列中的单元格进行任何更改。当我搜索 typeof(df) 时,我得到“列表”。这可能与它有关?

任何帮助将不胜感激。

【问题讨论】:

  • 你见过this question吗?
  • 不,我没有,感谢您分享此链接。我确实尝试了这个问题中的gsub 方法,但inconv 方法(如下)效果最好。

标签: r string


【解决方案1】:

第二个问题,tyepof() 将始终为数据框返回 list,因为 data frames are really just lists of equal length vectors

对于第一个问题,您的数据中似乎有一些 Unicode 编码字符。处理这些问题的一种好方法是转换它们,也许像:

df$city <- iconv(df$city, 'utf-8', 'ascii', sub = '')

也可以gsub在其十六进制代码上输出字符,如下所示:

df$city <- gsub('\u200B', '', df$city)

甚至是一个范围:

df$city <- gsub('[\u2000-\u20ff]', '', df$city)

但我真的认为iconv 方法是可行的方法。在这种用法中,它只会删除字符而不是渲染它,但这似乎是您想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2019-03-14
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多