L'astuce du jour : sur les arrondis
2 participants
Page 1 sur 1
L'astuce du jour : sur les arrondis
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 :
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 :
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 :
Je vous laisse lire la doc de formatC() pour plus de précisions.
- 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.
Re: L'astuce du jour : sur les arrondis
J'apprécie le geste et le format. Je vais essayer de lancer le mouvement sur stata.
Re: L'astuce du jour : sur les arrondis
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
Sujets similaires
» L'astuce du jour : nom des fichiers
» L'astuce du jour : graphiques
» L'astuce du jour : produire un tableau de régressions en tex
» L'astuce du jour: produire une courbe de Bonferroni
» L'astuce du jour : suivre l'évolution d'une grosse boucle
» L'astuce du jour : graphiques
» L'astuce du jour : produire un tableau de régressions en tex
» L'astuce du jour: produire une courbe de Bonferroni
» L'astuce du jour : suivre l'évolution d'une grosse boucle
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|