如何在R图中显示đ,ư,ơ,ă

时间:2013-02-28 23:36:01

标签: r character-encoding

我试图将越南标签放在R图中。我使用RStudio并使用UTF-8编码保存我的代码。它处理我在代码中放入的越南字符,我的意思是代码中的所有内容都正确显示。但是,在我制作的图表中,虽然许多字符显示正常,但几个重要的字符没有正确显示,包括

đ - 显示为d

错误

ư - 显示为u

ơ - 错误地显示为o

ă - 错误地显示为

不幸的是,这使得我的图表看起来不专业且不值得信任。

如果有人可以帮我解决这个问题,我真的很感激。

非常感谢!


@DWin:我在Windows 7上,这是我的sessionInfo()

R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-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] MASS_7.3-17    MatchIt_2.4-20 tools_2.15.0  

@krlmlr:这是我的简单图表代码:

knorelative.count <- matrix(nrow=5,ncol=1)
knorelative.count[,1] <- c(1579,638,215,100,120)

par(mar=c(2,4,4,2))
barplot(prop.table(knorelative.count),beside=TRUE,
        yaxt="n",ylim=c(0,.6),
        legend=c("không ai biết",
                 "không biết nhiều hơn biết",
                 "nửa biết, nửa không biết",
                 "biết nhiều hơn không biết",
                 "tất cả đều biết"),
        main="Người khác trong gia đình, họ hàng biết hay không")
axis(2,at=seq(0,.6,.1),labels=paste(100*seq(0,.6,.1),"%",sep=""),las=1)

当我运行时,主标题中的đ和图例中的两个ơ和đ变成d和o。

3 个答案:

答案 0 :(得分:3)

通过十六进制代码指定unicode字符通常更安全:

plot(1:4,rep(1,4),pch=c("\u0111","\u01B0","\u01A1","\u0103"),cex=4)

答案 1 :(得分:2)

对于那些遇到同样问题的越南人来说,这是使用詹姆斯建议的十六进制代码修复的一个例子:

  

打印( “TRUONG”)

[1]“truờng”

  

打印( “TR \u01B0ờng”)

[1]“trường”

虽然我可以在我的R控制台中键入越南语,在本例中为trường,但是任何类型的输出(例如print,graph)都无法显示字符ư。用十六进制代码替换ư可以修复输出。

(注意:我之前使用过功能粘贴,但后来根据James的建议对其进行了编辑,将十六进制代码粘贴在字符串中。)

我非常感谢以这种方式学习。我会为我目前正在撰写的报告做这件事。

答案 2 :(得分:0)

像这样的大写字母

plot(
    1:4,
    rep(1,4), 
    pch=c("\U0110","\u01AF","\u01A0","\u0102"),
    cex=4
)