qdapRegex :: rm_nchar_words возвращает разные результаты, когда используются не английские буквы? - PullRequest
1 голос
/ 11 июня 2019

Пожалуйста, помогите мне со следующей путаницей:

qdapRegex::rm_nchar_words("è ûé", "1,2")
[1] "è ûé"

qdapRegex::rm_nchar_words('k ku ppp d', "1,2")
[1] "ppp"

Почему в первой строке кода он не отвечает "", но во второй он работает, как ожидалось. Что мне здесь не хватает? Единственное, что я могу думать, что в первой строке кода строка построена не из английских букв.

Любое решение?

enter image description here

1 Ответ

1 голос
/ 11 июня 2019

Как упомянуто автором пакета:

Используется \w для определения букв, которые определены как [A-Za-z0-9_].Вам нужно будет написать свое собственное регулярное выражение для обработки не-ascii букв

ОБНОВЛЕНИЕ:

На моем компьютере с Win 7 вывод будет таким, как ожидалось.

Один извозможные способы ее решения с использованием шаблона "[\\pL_]" (любое слово на любом языке)

rm_nchar_words("è ûé", "1,2", pattern = "[\\pL_]")

Язык на Win-машине:

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252  

Я буду продолжать изучать это и публиковать обновления для моегоответ.

ОБНОВЛЕНИЕ 2:

rm_nchar_words("è ûé", "1,2", pattern = "[\\pL_]")
""

работает на моем Ubuntu 18.04.

...