非英文字母引起casefold()出现问题

时间:2018-10-11 19:35:30

标签: r

我要做的就是将 df 中的 address 列更改为大写

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

但是我不断收到以下错误-可能是因为带有重音符号的“ I”

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

我知道这种观察已经是大写字母了,但并非所有人都如此。我不想只用所有这些实例替代它们的英文对应版本,主要是因为稍后会出现Eszett(ß),而且我不知道该用什么替代。

1 个答案:

答案 0 :(得分:0)

在我的帐户中使用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ß"

您可能想签出将String eszett转换为SS的Package Stringer。

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

但是反之亦然。

> str_to_lower('DASS')
[1] "dass"