¿Por qué algunos caracteres Unicode se muestran en matrices, pero no en marcos de datos en R?
Para al menos algunos casos, los caracteres asiáticos se pueden imprimir si están contenidos en unmatrix
, o unvector
, pero no en undata.frame
. Aquí hay un ejemplo
q<-'天'
q # Works
# [1] "天"
matrix(q) # Works
# [,1]
# [1,] "天"
q2<-data.frame(q,stringsAsFactors=FALSE)
q2 # Does not work
# q
# 1 <U+5929>
q2[1,] # Works again.
# [1] "天"
Claramente, mi dispositivo es capaz de mostrar el carácter, pero cuando está en unadata.frame
, No funciona.
Haciendo un poco de excavación, encontré que laprint.data.frame
la función se ejecutaformat
en cada columna. Resulta que si corresformat.default
directamente, ocurre el mismo problema:
format(q)
# "<U+5929>"
Cavando enformat.default
, Me parece que está llamando a lo internoformat
, escrito en C.
Antes de seguir investigando, quiero saber si otros pueden reproducir este comportamiento.¿Hay alguna configuración de R que me permita mostrar estos caracteres dentro dedata.frame
s?
MisessionInfo()
, si ayuda
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_Canada.1252 LC_CTYPE=English_Canada.1252
[3] LC_MONETARY=English_Canada.1252 LC_NUMERIC=C
[5] LC_TIME=English_Canada.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.0.1