Lorsque vous travaillez avec des données (par exemple, dans data.frame), l'utilisateur peut contrôler l'affichage des chiffres en utilisant
options(digits=3)
et listant le data.frame comme ceci.
ttf.all
Lorsque l'utilisateur doit coller les données dans Excell comme ceci
write.table(ttf.all, 'clipboard', sep='\t',row.names=F)
Le paramètre des chiffres est ignoré et les nombres ne sont pas arrondis.
Voir Nice sortie
> ttf.all
year V1.x.x V1.y.x ratio1 V1.x.y V1.y.y ratioR V1.x.x V1.y.x ratioAL V1.x.y V1.y.y ratioRL
1 2006 227 645 35.2 67 645 10.4 150 645 23.3 53 645 8.22
2 2007 639 1645 38.8 292 1645 17.8 384 1645 23.3 137 1645 8.33
3 2008 1531 3150 48.6 982 3150 31.2 755 3150 24.0 235 3150 7.46
4 2009 1625 3467 46.9 1026 3467 29.6 779 3467 22.5 222 3467 6.40
Mais ce qui est dans Excel (presse-papiers) n'est pas arrondi. Comment contrôler dans dans write.table()
?
Vous pouvez utiliser la fonction format()
comme dans:
write.table(format(ttf.all, digits=2), 'clipboard', sep='\t',row.names=F)
format()
est une fonction générique qui a des méthodes pour de nombreuses classes, y compris data.frames. Contrairement à round()
, il ne générera pas d'erreur si votre dataframe n'est pas entièrement numérique. Pour plus de détails sur les options de formatage, consultez le fichier d'aide via ?format
Ajout d'une solution pour le bloc de données ayant des colonnes mixtes character
et numeric
. Nous utilisons d'abord mutate_if
pour sélectionner les colonnes numeric
puis leur appliquons la fonction round()
.
# install.packages('dplyr', dependencies = TRUE)
library(dplyr)
df <- read.table(text = "id year V1.x.x V1.y.x ratio1
a 2006 227.11111 645.11111 35.22222
b 2007 639.11111 1645.11111 38.22222
c 2008 1531.11111 3150.11111 48.22222
d 2009 1625.11111 3467.11111 46.22222",
header = TRUE, stringsAsFactors = FALSE)
str(df)
#> 'data.frame': 4 obs. of 5 variables:
#> $ id : chr "a" "b" "c" "d"
#> $ year : int 2006 2007 2008 2009
#> $ V1.x.x: num 227 639 1531 1625
#> $ V1.y.x: num 645 1645 3150 3467
#> $ ratio1: num 35.2 38.2 48.2 46.2
df <- df %>%
mutate_if(is.numeric, round, digits = 2)
df
#> id year V1.x.x V1.y.x ratio1
#> 1 a 2006 227.11 645.11 35.22
#> 2 b 2007 639.11 1645.11 38.22
#> 3 c 2008 1531.11 3150.11 48.22
#> 4 d 2009 1625.11 3467.11 46.22
Créé le 2019-03-17 par le package reprex (v0.2.1.9000)