我已经将描述也门地区霍乱病例的一些数据从一个在线数据库复制到一个文本文件中。每个地区的名称都是用英语和阿拉伯语在一个字符串中给出的。我想去掉R中的阿拉伯语,只留下英文名字。
这是英语/阿拉伯语字符串读入R时的样子:
regions <- c("Al Hudaydah Ø§Ù„ØØ¯ÙŠØ¯Ø©", "Hajjah ØØ¬Ø©")
我希望只剩下英文版的"Al Hudaydah" "Hajjah"
我试过使用str_replace_all(regions, "[^[:alnum:]]", "")和replace_non_ascii(regions),但它没有给我想要的东西。
有什么想法吗?
谢谢!
发布于 2021-03-04 21:01:58
最简单的方法可能是简单地使用gsub
gsub("[^A-Za-z0-9 ]", "", regions)发布于 2021-03-05 23:31:50
编辑:我已经找到了问题的解决方案。问题出在文本文件的读入过程中。如果它包含阿拉伯语(或任何非拉丁文字),则需要使用encoding = 'UTF-8'
例如:
txt <- readLines("Arabic_English_script.txt")返回
"Al Hudaydah§“Ѝ©”"Taizz?“
而txt <- readLines("Arabic_English_script.txt", encoding = 'UTF-8')返回
塔伊兹"Al Hudaydahالحديدة“”
تعز“
正确导入文本后,gsub("[^[:alnum:]]", "", txt)将返回
"AlHudaydah“"Taizz”
(请注意,它仍会删除空格。不确定如何修复这个问题。)
https://stackoverflow.com/questions/66475297
复制相似问题