繁体   English   中英

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

[英]R - Unicode symbol “dot above” as thousands separator

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

“上面的点”的字符代码是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),或者解决方案比我尝试过的解决方案更简单,但是我不知道如何处理。

有人知道怎么做吗?

预先感谢您的任何建议。

正如@Roland提到的prettyNum使用的gsubsub prettyNum了编码。 不幸的是,您不能在之后简单地将其重置以恢复数据,因为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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM