更改sprintf()中的十进制字符

时间:2014-05-10 21:54:21

标签: r printf

我可以使用以下命令从输出中更改小数字符:

> 1/2
[1] 0.5
> options(OutDec = ',')
> 1/2
[1] 0,5

但是,此更改不会影响sprintf()功能。

> sprintf('%.1f', 1/2)
[1] "0.5"

所以,我的问题是:有一种简单的方法可以改变它(十进制字符)?我认为我不能使用“简单”RE,因为.并非每个,都需要进行交易。

我不知道怎么做,所以我不能说我已经做了什么。

1 个答案:

答案 0 :(得分:1)

我认为你可以通过适当设置你的语言环境来做到这一点,确保LC_NUMERIC组件设置为使用逗号作为小数分隔符(http://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html)的语言环境。

Sys.setlocale("LC_NUMERIC","es_ES.utf8")
sprintf("%f",1.5)  
## "1,500000"

这表示R可能表现得很奇怪;您可能希望在生成输出后立即将LC_NUMERIC切换回C.