我正在尝试从 <U+200B>Chandler
中删除标点符号和数字成为Chandler
.这是我目前正在尝试的:
df$city <- gsub("[[:punct:]]|[[:digit:]]", "", df$city)
但是,它不会更改“df”中“城市”列中的单元格。当我搜索 typeof(df) 时,我得到“列表”。这可能与它有关?
如有任何帮助,我们将不胜感激。
最佳答案
首先是第二个问题,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
方法是可行的方法。在这种用法中,它只会删除字符而不是渲染它,但这似乎就是您想要的。
关于R - gsub 从字符串中删除标点符号和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54719478/