至少在某些情况下,如果亚洲字符包含在 amatrix
或 avector
中,但不包含在 a 中,则它们是可打印的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] "天"
显然,我的设备能够显示字符,但是当它位于 a 时data.frame
,它不起作用。
进行了一些挖掘,我发现该print.data.frame
函数format
在每一列上运行。原来,如果format.default
直接运行,也会出现同样的问题:
format(q)
# "<U+5929>"
深入format.default
研究,我发现它正在调用内部format
,用 C 编写。
在我进一步挖掘之前,我想知道其他人是否可以重现这种行为。是否有一些 R 配置可以让我在data.frame
s 中显示这些字符?
我的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