Hacer que los datos no ASCII sean adecuados para CRAN
portability (1)
Tengo algunos datos que contienen caracteres no ASCII, que quiero incluir como un archivo rda
en un paquete R. Cuando ejecuto una R CMD check
en el paquete, recibo una advertencia:
Warning: found non-ASCII strings
que está bloqueando que se permita en CRAN.
Hay una pregunta similar sobre la eliminación de caracteres que no son ASCII de los archivos de datos , pero quiero mantener los caracteres que no son ASCII.
Puede tomar los datos CSV here . Lo estoy leyendo en R y estoy guardando como rda
con este código:
english_monarchs <- read.csv(
wherever_you_downloaded_the_file_to,
fileEncoding = "utf8",
na.strings = ""
)
save(english_monarchs, "english_monarchs.csv")
Es la columna de name
del conjunto de datos que contiene valores que no son ASCII.
head(levels(english_monarchs$name))
## [1] "Adda" "Æðelbehrt"
## [3] "Æðelberht I" "Æðelberht II and Eardwulf"
## [5] "Æðelberht II, Ælfric and Eadberht I" "Æðelberht III"
Basándome en la guía (no muy clara) en la sección Problemas de codificación de Writing R Extensions, creo que debería codificar los niveles de los factores como UTF-8, pero el método obvio no funciona:
Encoding(levels(english_monarchs$name)) <- "utf8" #each encoding still "unknown"
¿Cómo puedo hacer que los datos sean lo suficientemente portátiles para ser aceptados en CRAN?
Lo que funcionó para mí fue declarar la codificación como "latin1"
y luego usar iconv
para convertir a UTF-8.
Encoding(levels(english_monarchs$name)) <- "latin1"
levels(english_monarchs$name) <- iconv(
levels(english_monarchs$name),
"latin1",
"UTF-8"
)