r portability cran

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" )