Comment définir ',' comme séparateur décimal avec R
même si mes paramètres de localisation Windows 7 spécifient l'utilisation de", " comme séparateur décimal, R et RStudio me donnent un "." séparateur. Est-il possible de modifier cela? Notez le paramètre" LC_NUMERIC=C " dans la locale ci-dessous: cela semble être forcé par R ou RStudio.
comme je suis au milieu d'un long projet, Je ne suis pas disposé à changer tout de suite à R 3.0 et la dernière version de RStudio. Quelqu'un sait il est tout changement concernant le séparateur décimal question dans ces versions?
j'utilise prettyNum pour résoudre le problème des nombres simples, mais je ne sais pas comment l'utiliser sur une table.
sessionInfo() Version R 2.15.3 (2013-03-01) Plate-forme: x86_64-w64-mingw32/x64 (64 bits)
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
3 réponses
Le séparateur décimal utilisé par l' read.table
et write.table
fonctions (et la plupart de leurs cousins) est défini avec le paramètre "dec". read.csv2
est un cas particulier, où la valeur par défaut de dec
est "," et le séparateur de champ ("sep") est réglé sur ";".
Vous modifier la sortie de l'impression R, le pointage et les actions de la as.character
fonction. Vous de le modifier à partir de ses valeurs par défaut suivantes:
options(OutDec= ",") # read ?options
print( pi )
#[1] 3,141593
options(OutDec= ",") # restore default value
cela N'obligera pas R à gérer l'entrée numérique à partir de la console différemment. C'est codé en dur "."comme séparateur décimal.
si vous appliquiez une fonction de texte à un objet table, vous seriez peut-être en train de passer d'un mode 'numérique' à un mode 'caractère', puisque les objets table dans R héritent de la classe "matrix".
Pourquoi voulez-vous utiliser "," comme séparateur décimal, dans ce cas, comment R interprate cette R expression
x <- c(2,3) # (two vectors or one).
donc, je suppose que vous voulez juste Outrepasser le séparateur décimal par défaut pour imprimer une sortie et dans ce cas, je pense que prettyNum est le bon outil.
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
basé sur le fait que vous voulez l'utiliser avec (Pandoc) markdown aussi loin que je peux voir de la commentaire de blog où vous référence à cette question, je vous suggère aussi d'essayer de mon flatter paquet:
> 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
-------------------------------------------------------------------
Ou PHP Markdown Extra syntaxe pour faciliter l'utilisation 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 |