r - 从r中的数据框中删除unicode字符
问题描述
我有一个包含波斯语字符的大型数据框,我使用以下代码将其导入 r:
Sys.setlocale(locale = "persian")
dt <- read.csv("data.csv",encoding="UTF-8")
我的 dt 是这样的:
id title
3376971 چوب شور آلبينا شيرين عسل <U+06F3><U+06F0> گرمي
3376989 ويفر رنگارنگ مينو <U+06F1><U+06F4>.<U+06F5> گرمي
3376990 کوکي مينو <U+06F3><U+06F0> گرمي
3376991 بيسکويت هاي باي شيرين عسل <U+06F3><U+06F8> گرمي
3376992 شکلات توريستي آناتا <U+06F2><U+06F8> گرمي
3376993 اسنک مغزدار شکلاتي شونيز <U+06F1><U+06F7> گرمي
3376994 شکلات فندقي آناتا <U+06F1><U+06F8> گرمي
3376995 نان روغني شيرين عسل <U+06F5><U+06F0> گرمي
3376996 بيسکويت هاي باي شيرين عسل <U+06F5><U+06F7> گرمي
我想删除一些 unicode,我尝试过:
dt<- cbind.data.frame(dt$id,gsub("<.+>", "", dt$title)
dt<- cbind.data.frame(dt$id,gsub("\\S+\\s+|-", "", dt$title)
dt<- cbind.data.frame(dt$id,gsub("^\\s*<U\\+\\w+>\\s*", "", dt$title)
dt<- cbind.data.frame(dt$id,gsub("\\<U[^\\>]*\\>", "", dt$title)
dt<- cbind.data.frame(dt$id,gsub(""▼|▲"", "", dt$title)
但它们都不起作用
我也试过这个:
dt$title<-gsub("^\\s*<U\\+\\w+>\\s*", "", dt$title)
但我收到了这个错误:
Error in `$<-.data.frame`(`*tmp*`, title, value = character(0)) :
replacement has 0 rows, data has 66366
解决方案
我注意到在 R 控制台中,我的数据显示如下:
چوب شور آلبینا شیرین عسل ۳۰ گرمی
并且 Unicode 已经显示为波斯数字,我尝试了这个并且它有效:
dt$title<-gsub("[۰-۹]+", "", dt$title)
推荐阅读
- python - 如何使用错误代码解压文件?
- php - 按索引分组的多维数组
- github - Markdown 不适用于 github 页面(没有将 Markdown 转换为 HTML)
- java - 变量和方法的 Java 问题
- flutter - 被键盘隐藏的表单域| 不推高?
- firebase - 如何访问 Firebase 集合
- javascript - 浏览器中第一个字节的时间处理程序?
- javascript - 赛普拉斯有没有办法进行反向“getBySel”或类似的事情?
- python - 如何汇总列表中的所有外观并打印列表中的最大值
- python - 可靠性:Python 中的路径/剪切向量技术