我已将一些描述也门地区霍乱病例的数据从在线数据库复制到文本文件中。每个地区的名称都用英语和阿拉伯语在一个字符串中给出。我想删除 R 中的阿拉伯语,只留下英文名称。
这是读入 R 时英语/阿拉伯语字符串的样子:
regions <- c("Al Hudaydah الØديدة", "Hajjah Øجة")
我只想留下英语
"Al Hudaydah" "Hajjah"
我试过使用
str_replace_all(regions, "[^[:alnum:]]", "")
和 replace_non_ascii(regions)
但它没有给我我想要的东西。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
最简单的方法可能是简单地使用 gsub
gsub("[^A-Za-z0-9 ]", "", regions)
答案 1 :(得分:1)
编辑:我找到了解决问题的方法。问题在于文本文件的读取。如果它包含阿拉伯语(或可能是任何非拉丁文字),则需要使用 encoding = 'UTF-8'
例如
txt <- readLines("Arabic_English_script.txt")
返回
“Al Hudaydah الØديدة”“Taizz تعز”
而 txt <- readLines("Arabic_English_script.txt", encoding = 'UTF-8')
返回
“Al Hudaydah الحديدة”“Taizz تعز”
文本正确导入后,返回 gsub("[^[:alnum:]]", "", txt)
“AlHudaydah”“Taizz”
(注意,它仍然删除了空格。不知道如何修复那个。)