我使用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)或者解决方案比我尝试的解决方案简单但我不知道如何处理它。
有人知道怎么做吗?
提前感谢任何建议。
答案 0 :(得分:1)
@Roland提到gsub
和sub
使用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"