如何设置“”作为有R小数点分隔符(How to set ',' as decimal

2019-09-02 00:57发布

尽管我的Windows 7的区域设置指定使用“”作为小数点分隔,R和RStudio给我一个“” 分隔器。 有什么办法来改变这种? 请注意“LC_NUMERIC = C”在下面的区域设置:这似乎是由R或RStudio被迫。

正如我在一个长期项目的中间,我不愿意马上R 3.0,最后RStudio版本改变。 有谁知道是有关于在这些版本中小数点分隔问题的任何变化?

我使用prettyNum解决单数的问题,但我不知道如何使用它在桌子上。

sessionInfo()R版本2.15.3(2013-03-01)平台:x86_64的-W64-的mingw32 / 64(64位)

locale:
[1] LC_COLLATE=Spanish_Argentina.1252  LC_CTYPE=Spanish_Argentina.1252   
[3] LC_MONETARY=Spanish_Argentina.1252 LC_NUMERIC=C                      
[5] LC_TIME=Spanish_Argentina.1252    

attached base packages:
[1] grid      splines   stats     graphics  grDevices utils     datasets  methods  
[9] base     

other attached packages:
 [1] ascii_2.1          randomForest_4.6-7 pander_0.3.3       fpc_2.1-5         
 [5] flexmix_2.3-10     mclust_4.0         cluster_1.14.3     MASS_7.3-23       
 [9] Gmisc_0.5.0.0      testthat_0.7       boot_1.3-7         rms_3.6-3         
[13] miscTools_0.6-16   stringr_0.6.2      Hmisc_3.10-1       survival_2.37-2   
[17] lattice_0.20-13    xtable_1.7-1       pixmap_0.4-11      RColorBrewer_1.0-5
[21] ade4_1.5-1        

loaded via a namespace (and not attached):
[1] digest_0.6.3      evaluate_0.4.3    modeltools_0.2-19 stats4_2.15.3    
[5] tools_2.15.3  

Answer 1:

由所使用的小数分隔read.tablewrite.table功能(以及大多数其表亲)被设置为“DEC”参数。 read.csv2是一种特殊情况,其中用于默认dec是“”和字段分隔符(‘SEP’)被设置为‘;’。

可以改变来自R打印输出,策划和的行动as.character功能。 您可以从它的默认与改变:

 options(OutDec= ",")   # read ?options
 print( pi )
 #[1] 3,141593
 options(OutDec= ",")  # restore default value

这不会引起R键从控制台处理数字输入不同。 这是硬编码为“” 作为小数分隔符。

如果施加一个文本的功能的表对象,你将有可能从一个“数字”强迫到“字符”模式下,由于在R表对象从“基体”类继承。



Answer 2:

为什么要使用“”作为小数点分隔符,在这种情况下,R将如何interprate这个R的表达

x <- c(2,3) # (two vectors or one). 

所以,我以为你只是想覆盖默认的小数点分隔符来打印输出,并且在这种情况下,我认为prettyNum是正确的工具。

require(plyr)
head(numcolwise(prettyNum)(iris, dec = ","))

##   Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1          5,1         3,5          1,4         0,2
## 2          4,9           3          1,4         0,2
## 3          4,7         3,2          1,3         0,2
## 4          4,6         3,1          1,5         0,2
## 5            5         3,6          1,4         0,2
## 6          5,4         3,9          1,7         0,4


Answer 3:

在此基础上要与(Pandoc)降价用它,据我从看到的事实,你提到这个问题的博客评论 ,我还建议给予一个尝试我奉迎包 :

> library(pander)
> panderOptions('decimal.mark', ',')
> panderOptions('table.split.table', Inf)
> pander(head(iris))

-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5,1            3,5           1,4            0,2       setosa  

     4,9             3            1,4            0,2       setosa  

     4,7            3,2           1,3            0,2       setosa  

     4,6            3,1           1,5            0,2       setosa  

      5             3,6           1,4            0,2       setosa  

     5,4            3,9           1,7            0,4       setosa  
-------------------------------------------------------------------

或PHP降价与更容易使用额外的语法knitr

> pandoc.table(head(iris), style = 'rmarkdown')


|  Sepal.Length  |  Sepal.Width  |  Petal.Length  |  Petal.Width  |  Species  |
|:--------------:|:-------------:|:--------------:|:-------------:|:---------:|
|      5,1       |      3,5      |      1,4       |      0,2      |  setosa   |
|      4,9       |       3       |      1,4       |      0,2      |  setosa   |
|      4,7       |      3,2      |      1,3       |      0,2      |  setosa   |
|      4,6       |      3,1      |      1,5       |      0,2      |  setosa   |
|       5        |      3,6      |      1,4       |      0,2      |  setosa   |
|      5,4       |      3,9      |      1,7       |      0,4      |  setosa   |


文章来源: How to set ',' as decimal separator with R
标签: r separator