12

私の 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/x64 (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  
4

3 に答える 3

20

read.tableおよびwrite.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 のテーブル オブジェクトは「行列」クラスから継承されるため、「数値」モードから「文字」モードに強制される可能性があります。

「ヨーロッパ式」の小数点記号を使用してデータを読み取る「自然な」方法は、 を使用することread.delimです。小数点記号を "," に変更するだけでなく、同時にいくつかのパラメーターを read.table または read.csv のデフォルト以外のものに変更します。

sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = ""
于 2013-05-05T16:31:38.030 に答える
3

なぜ「、」を小数点記号として使用したいのですか? その場合、R はこの 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
于 2013-05-05T13:22:13.850 に答える
0

この質問を参照したブログのコメントからわかる限り、(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 Markdown Extra 構文を使用すると、次のように簡単に使用できます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   |
于 2013-05-06T19:00:38.063 に答える