Comment contrôler le nombre de décimales dans la sortie de write.table() ?

Lorsque vous travaillez avec des données (par exemple dans un data.frame), l’utilisateur peut contrôler l’affichage des chiffres en utilisant :

options(digits=3)

et en listant le data.frame comme ceci :

ttf.all

Lorsque l’utilisateur a besoin de coller les données dans Excel comme ceci :

write.table(ttf.all, 'clipboard', sep='\t',row.names=F)

Le paramètre digits est ignoré et les nombres ne sont pas arrondis.

Voyez la belle 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 le contrôler 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 les data.frames. Contrairement à round(), elle 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.