/ / Uso de caracteres especiales en Rstudio - r, codificación, rstudio

Usar caracteres especiales en Rstudio - r, codificación, rstudio

Estoy trabajando con algunos personajes especiales en Rstudio. Los encubierta en letras simples.

print("Safarzyńska2013")
[1] "Safarzynska2013"

x <- "Māori"
x
[1] "Maori"

¿Hay alguna forma de leer los caracteres originales exactos? La siguiente información podría ser útil: La codificación predeterminada de Rstudio es utf-8

sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] tools_3.1.1

Respuestas

1 para la respuesta № 1

Esto no es un problema exclusivo de RStudio.

Mecanografía print("Safarzyńska2013") en la consola de RGui también los convierte a letras simples. Ejecutando este código desde una secuencia de comandos codificada en utf-8 en RGui regresa [1] "Safarzy?ska2013".

No creo que sea una buena idea escribir dichos caracteres especiales en la consola. x <- "SomeString"; Encoding(x) devoluciones "unknown" y ese es probablemente el problema: R no tiene idea de qué codificación está utilizando en la consola y probablemente no tenga la oportunidad de obtener su codificación original.

Puse "Safarzyńska2013nMāorin" en un archivo de texto codificado con utf-8. Entonces lo siguiente funciona bien:

tbl <- read.table("c:/test1.txt", encoding = "utf-8", stringsAsFactors = FALSE)
tbl[1,1]
tbl[2,1]
Encoding(tbl[1,1])  # returns "utf-8"

Si realmente quieres usar la consola, probablemente tendrás que enmascarar los caracteres especiales. En ?Encoding encontramos el siguiente ejemplo para crear una palabra con caracteres especiales:

x <- "faxE7ile"
Encoding(x)

En realidad, no sé por el momento cómo obtener estos códigos para sus caracteres especiales y ?Encoding tampoco tiene pistas ...