Как удалить слова, используя grep на других языках? - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь удалить строки из кадра данных, используя grep для греческого языка.

df <- data.frame(freetext = c("Εδώ και αρκετό καιρό που συνεχίζουν","και τώρα που έγιναν"))

df <- df_text[!grepl("και|που", df),]

И ошибка

Error in `$<-.data.frame`(`*tmp*`, text, value = character(0)) : 
  replacement has 0 rows, data has 2

Есть ли проблемы с языком?

Ожидаемый кадр данных:

df <- data.frame(freetext = c("Εδώ αρκετό καιρό συνεχίζουν","τώρα έγιναν"))

1 Ответ

0 голосов
/ 13 января 2019

Нет проблем с языком, но есть несколько других. Вы хотите

df$freetext <- gsub("(και|που)[$ ]", "", df$freetext)
df
#                      freetext
# 1 Εδώ αρκετό καιρό συνεχίζουν
# 2                 τώρα έγιναν

grepl используется только для обнаружения определенных шаблонов, а не для внесения каких-либо изменений. Для этого вы хотите gsub. Тогда вы также имеете дело с вектором df$freetext, а не с целым фреймом данных df, и назначение должно быть в том же столбце, а не во всем фрейме данных. И, наконец, для шаблона требуется [$ ], означающий конец символа или пробел, чтобы не удалять και форму καιρό.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...