Проблема с casefold () из-за неанглийских букв - PullRequest
0 голосов
/ 11 октября 2018

Все, что я хочу сделать, это изменить столбец address в df на верхний регистр

df$address <- casefold(df$address, upper = TRUE)

, но я получаю следующую ошибку - возможно, из-заЯ с акцентом

Error in toupper(x) : 
  invalid input 'POLÍGONO INDUSTRIAL OLASO' in 'utf8towcs'

Я знаю, что это наблюдение уже в верхнем регистре, но не все из них.Я не хочу просто заменять все эти экземпляры своим английским аналогом, главным образом потому, что Эсцетт (ß) появляется позже, и я не знаю, чем это будет заменено.

1 Ответ

0 голосов
/ 12 октября 2018

Casefold работает, как и ожидалось, с акцентом i на моем счете

> casefold('POLÍGONO INDUSTRIAL OLASO')
[1] "polígono industrial olaso"
> casefold('POLÍGONO INDUSTRIAL OLASO', upper = TRUE)
[1] "POLÍGONO INDUSTRIAL OLASO"

Для eszett он остается как есть.

> casefold('daß')
[1] "daß"
> casefold('daß', upper = T)
[1] "DAß"

Вы можете проверить пакетный stringr, который переведет eszett в SS.

> library(stringr)
> str_to_lower('daß')
[1] "daß"
> str_to_upper('daß')
[1] "DASS"

Но это не работает наоборот.

> str_to_lower('DASS')
[1] "dass"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...