удаление символов юникода из фрейма данных в r - PullRequest
0 голосов
/ 17 июня 2019

У меня есть большой фрейм данных, который содержит символы фарси. Я импортирую его в r с этим кодом:

Sys.setlocale(locale = "persian")
dt <- read.csv("data.csv",encoding="UTF-8")

и мой ДТ такой:

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> گرمي

Есть какой-то юникод, который я хотел бы удалить, я попробовал:

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

1 Ответ

0 голосов
/ 18 июня 2019

Я заметил, что в консоли R мои данные отображаются так:

چوب شور آلبینا شیرین عسل ۳۰ گرمی

и Unicode был показан как персидские числа, и я попробовал это, и это сработало:

dt$title<-gsub("[۰-۹]+", "", dt$title)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...