Forum des étudiants du CERDI
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

L'astuce du jour : sur les arrondis

2 participants

Aller en bas

L'astuce du jour : sur les arrondis Empty L'astuce du jour : sur les arrondis

Message  flbresson Lun 22 Nov - 12:17

Toujours de l'optique de produire des output avec R, j'ai souvent fait face au problème d'arrondi des coefficients estimés afin de faciliter la lecture des tableaux. Partons de l'exemple suivant :

Code:
> matrix(c(pi/100,pi,2*pi,pi/400),2)
          [,1]        [,2]
[1,] 0.03141593 6.283185307
[2,] 3.14159265 0.007853982

Imaginons que je souhaite me limiter à deux chiffres significatifs. Pas de problème normalement puisque R propose les fonctions round(), ceiling(), floor(), trunc() et surtout signif() pour faire ce type de job. Or voici ce que l'on obtient avec cette dernière fonction :

Code:
> signif(matrix(c(pi/100,pi,2*pi,pi/400),2),digits=2)
      [,1]  [,2]
[1,] 0.031 6.3000
[2,] 3.100 0.0079

C'est certes mieux, mais en y regardant de plus près, j'ai quand même deux cellules qui présentent des zéros surnuméraires. Je peux évidemment réaliser mon export sous LaTeX et nettoyer le fichier, mais ça peut devenir rapidement insupportable si l'on a un grand nombre de tableaux. Il est aussi possible de faire tourner une boucle afin d'appliquer la fonction signif() individuellement sur chaque cellule mais c'est pas beau.

Le mieux est en fait d'utiliser la fonction formatC qui permet de mettre en forme des chiffres pour la réalisation d'output (comprendre par là que les chiffres de la matrice seront convertis en chaîne de caractère mais en s'en fiche puisqu'il s'agit d'exporter un tableau). Résultat :
Code:
> formatC(matrix(c(pi/100,pi,2*pi,pi/400),2),format="g",digits=2)
    [,1]    [,2]   
[1,] "0.031" "6.3" 
[2,] "3.1"  "0.0079"

Je vous laisse lire la doc de formatC() pour plus de précisions.
flbresson
flbresson

Messages : 360
Date d'inscription : 19/11/2009
Age : 44
Localisation : Clermont-Ferrand

http://sites.google.com/site/flbresson2/

Revenir en haut Aller en bas

L'astuce du jour : sur les arrondis Empty Re: L'astuce du jour : sur les arrondis

Message  Fred Mar 23 Nov - 0:08

L'astuce du jour : sur les arrondis 359243

J'apprécie le geste et le format. Je vais essayer de lancer le mouvement sur stata.
Fred
Fred
Admin

Messages : 370
Date d'inscription : 17/11/2009
Age : 40
Localisation : Doctorant

http://themanwhobloggedtheworld.blogspot.com/

Revenir en haut Aller en bas

L'astuce du jour : sur les arrondis Empty Re: L'astuce du jour : sur les arrondis

Message  flbresson Mar 23 Nov - 0:50

Faut quand même que je fasse attention au titre car je ne suis pas certain de poster une astuce par jour. Une par semaine serait déjà bien Smile
flbresson
flbresson

Messages : 360
Date d'inscription : 19/11/2009
Age : 44
Localisation : Clermont-Ferrand

http://sites.google.com/site/flbresson2/

Revenir en haut Aller en bas

L'astuce du jour : sur les arrondis Empty Re: L'astuce du jour : sur les arrondis

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum