R - Unicode符号“点上方”为千位分隔符

时间:2014-08-21 08:25:33

标签: r unicode separator

我使用R工作,我想使用Unicode符号“dot above”作为数据框中包含的数据的千位分隔符(不用于绘图),例如:1。000˙000而不是1,000,000

“dot above”的字符代码是02D9(取自Microsoft Word);当我输入命令时:

"\u02D9"

结果是符号“点在上面”:

"˙"

我更改了选项“scipen”:

options(scipen = 10)

然后我尝试了三种不同的解决方案:

1

format(1000000, big.mark = "\u02D9")

2

format(1000000, big.mark = intToUtf8("0x02D9"))

3

library(Unicode)
format(1000000, big.mark = intToUtf8(as.u_char("02D9")))

但结果总是如此:

"1™Ë000™Ë000"

也许这是关于编码系统(我住在意大利,我在我的电脑上使用Microsoft Windows 7)或者解决方案比我尝试的解决方案简单但我不知道如何处理它。

有人知道怎么做吗?

提前感谢任何建议。

1 个答案:

答案 0 :(得分:1)

@Roland提到gsubsub使用prettyNum编码。不幸的是,您不能简单地重置它以恢复您的数据,因为重整将其转换为两个字符,而prettyNum会颠倒它们的顺序:

`Encoding<-`(format(1000, big.mark = "\u02D9"),"UTF-8")
[1] "1\u0099\xcb000"

解决问题的最佳方法是使用安全字符format,然后交换并更改编码:

`Encoding<-`(gsub(",","\u02d9",format(1e6,big.mark=",")),"UTF-8")
[1] "1˙000˙000"