¿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.frames?

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta