Windows 7のロケール設定では、小数点記号として「、」を使用するように指定されていますが、RとRStudioでは「。」が表示されます。セパレータ。これを変更する方法はありますか?以下のロケールの「LC_NUMERIC = C」設定に注意してください。これはRまたはRStudioによって強制されているようです。
私は長いプロジェクトの真っ最中なので、すぐにR3.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
read.table
およびwrite.table
関数(およびそれらのほとんどのいとこ)で使用される小数点記号は、「dec」パラメーターで設定されます。 read.csv2
は、dec
のデフォルトが "、"で、フィールド区切り文字( "sep")が ";"に設定されている特殊なケースです。
can Rの印刷、プロット、およびas.character
関数のアクションからの出力を変更します。次の方法でデフォルトから変更します。
options(OutDec= ",") # read ?options
print( pi )
#[1] 3,141593
options(OutDec= ",") # restore default value
これにより、Rがコンソールからの数値入力を異なる方法で処理することはありません。これは「。」にハードコードされています。小数点として。
テキスト関数をテーブルオブジェクトに適用した場合、Rのテーブルオブジェクトは「マトリックス」クラスを継承するため、「数値」モードから「文字」モードに強制される可能性があります。
小数点記号として「、」を使用する理由。その場合、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
この質問を参照したブログコメント からわかる限り、(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 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 |