Почему некоторые символы Unicode отображаются в матрицах, а не в фреймах данных в R?

По крайней мере, в некоторых случаях азиатские символы можно распечатать, если они содержатся вmatrixилиvector, но не вdata.frame, Вот пример

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] "天"

Ясно, что мое устройство способно отображать символы, но когда я,data.frame, это не работает.

Занимаясь копанием, я обнаружил, чтоprint.data.frame функция работаетformat на каждом столбце. Оказывается, если вы запуститеformat.default напрямую возникает та же проблема:

format(q)
# "<U+5929>"

Копаться вformat.defaultЯ считаю, что это вызывает внутреннийformat, написанный на C.

Прежде чем копать дальше, я хочу знать, могут ли другие воспроизвести это поведение.Есть ли какая-то конфигурация R, которая позволила бы мне отображать эти символы внутриdata.frames?

мойsessionInfo(), если это поможет:

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

Ответы на вопрос(2)

Ваш ответ на вопрос