我有一个 .csv 文件,其中包含正确和误读的重音字符。例如,在第一行我有“Veríssimo”,在第二行我有“Virgí-nia”(应该是Virgínia)。 如果我什么都不做,它会打开“Virginia”拼写错误的文件。如果我尝试一种我知道的更正方法,例如使用 UTF-8 编码保存文件,那么“Veríssimo”就会拼写错误。
在 R 中,我尝试过:
dados_MG2 <- read_csv("dados_MG.csv")
,它会检测 UTF-8 编码并以拼写错误的“Veríssimo”打开。
dados_MG <- read_csv("Dados/extra/dados_MG.csv", locale = locale(encoding = "ISO-8859-1"))
我尝试强制使用不同的编码,并且使用它,“Veríssimo”拼写正确,但“Virgínia”则不然。
这是我的数据集的链接: https://github.com/elisa-fink/THM
谢谢您的帮助!
您可以使用
nchar
查找包含无效 UTF-8 字符的字符串,并将其替换为使用 ISO-8859-1 编码读取的字符串:
dados_MG <- read_csv('dados_MG.csv')
dados_MG.iso <- read_csv('dados_MG.csv', locale = locale(encoding = 'ISO-8859-1'))
not.utf <- is.na(nchar(dados_MG$DS_NOME, allowNA=T))
dados_MG$DS_NOME[not.utf] <- dados_MG.iso$DS_NOME[not.utf]
grep('^Ver.ss|^Virg.ni', dados_MG$DS_NOME, value=T)
# [1] "Veríssimo" "Virgínia"