IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Ecrire un tableau dans un fichier


Sujet :

R

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 61
    Points : 43
    Points
    43
    Par défaut Ecrire un tableau dans un fichier
    Bonjour!

    Je souhaiterais écrire un tableau dans un fichier. Dans ce tableau, plusieurs colonnes contiennent des nombres avec beaucoup de décimales... Y a-t-il un moyen d'ajouter un argument à la fonction write.table() pour réduire ce nombre de décimales à 3, par exemple?

    Merci d'avance!

  2. #2
    Membre expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Points : 3 378
    Points
    3 378
    Par défaut
    Bonjour,

    Je ne connais pas de façon directe de faire ça.
    En revanche, il est facile d'écrire une fonction qui le fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    x <- matrix(rnorm(10), nrow=5)
    y <- data.frame(a=letters[1:10], b=rnorm(10), c=runif(10))
     
     
    write.table.rd <- function(x, ndec=3,...)
    {
        ## Purpose: écrire un tableau dans un fichier en arrondissant les valeurs
        ##          numériques
        ## ----------------------------------------------------------------------
        ## Arguments: x: une data.frame ou quelque chose qui peut être converti
        ##               en data.frame
        ##            ndec: nombre de décimales
        ##            ...: arguments passés à la fonction write.table()
        ## ----------------------------------------------------------------------
        ## Author: pitipoisson
     
        x <- as.data.frame(x)                            # transformation en data.frame
        numcol <- which(sapply(x, class) == "numeric")   # sélection des colonnes numériques
        x[ , numcol] <- round(x[, numcol], digits=ndec)  # elles sont ensuite arrondies 
        write.table(x,...)                               # et enfin on écrit le résultat dans un fichier
    }
     
    write.table.rd(x, file="")
    write.table.rd(y, file="")
    L'exemple est basic, on peut notamment ajouter des contrôles (est-ce que x est bien convertible en data.frame ?, etc.)
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

Discussions similaires

  1. [PDF] Ecrire dans un tableau dans un fichier pdf depuit un code php
    Par Amelie MOREAU dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 17/02/2013, 20h37
  2. [uitable] Ecrire les valeurs du tableau dans un fichier texte
    Par soumer dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 20/08/2011, 14h41
  3. Réponses: 9
    Dernier message: 05/11/2005, 14h59
  4. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 16h57
  5. Réponses: 4
    Dernier message: 12/10/2005, 21h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo