Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

[R] probème write.table




  1. #1
    Loupsio

    [R] probème write.table

    Bonjour,
    Je fais face à un petit problème logistique sous R

    je souhaite exporter un tableau
    Code:
    write.table(monTableau,"NomDeTableau.csv",row.names=F,sep=';',dec=',', na="")
    Tant que j'utilise des valeurs numériques, aucun souci,
    en revanche si l'une des colonnes n'est pas numérique, tout mon tableau (chaque cellule) est considéré comme une chaine de caractère (un facteur plus précisemment), ce qui signifie qu'il rajoute les guillemets autour de chaque valeur, mais surtout qu'il ne prend pas en compte le petit " dec=',' " pour avoir la virgule au lieu des points dans le csv
    c'est relativement ennuyeux du fait que R me ressort ces csv dans une boucle et qu'il y en a une trentaine de csv a modifier un par un,

    Comment lui faire comprendre que "telle colonne" est bien une chaine de caractère, mais que toutes les autres doivent rester des valeurs numériques ?


    Voici un ECM pour mieux comprendre ce qui se passe
    Code:
    nombresA=c(0,1,2,3,4,5)
    nombresB=c(5,4,3,2,1,0)
    nombresC=c(10,20,30,40,50,60)
    texte=c("A","B","C")
    tableau=rbind(nombresA,nombresB,nombresC)
    tableau=cbind(texte,tableau)
    
    write.table(tableau,"Nom.csv",row.names=F,sep=';',dec=',', na="")
    Si je m'arrete au rbind, mon csv est composé de valers numériques, si je rajoute du non-numérique avec le cbind, tout passe en facteur dans mon csv

    Merci

    -----


  2. #2
    Loupsio

    Re : [R] probème write.table

    J'ai cherché à m'en cogner le crane pendant toute la soirée sans succès, et après une bonne nuit de sommeil j'ai compris d'ou venait le problème,
    je met la solution au cas ou ca serve à quelqu'un plus tard.

    je me suis rendu compte que c'est le format de mon tableau qui était incompatible avec ce que je voulais, car a cause du cbind er rbind, je n'avais pas un data.frame a proprement parler,
    j'ai donc fais un
    Code:
    tableau=data.frame(tableau)
    ca n'a pas été plus concluant, mon tableau etant deja en factor,

    mais lorsqe je passe en data.frame après le rbind (lorsque je n'ai que des valeurs numériques) et avant le cbind (donc avant d'ajouter le vecteur de texte) cela reglait le problème, mes valeurs numériques restent bien des valeurs numériques puisqu'elles sont dans un data.frame au moment de l'ajout de la colonne de texte

    pour reprendre l'ECM précédent, il suffisait de faire :
    Code:
    nombresA=c(0,1,2,3,4,5)
    nombresB=c(5,4,3,2,1,0)
    nombresC=c(10,20,30,40,50,60)
    texte=c("A","B","C")
    tableau=rbind(nombresA,nombresB,nombresC)
    tableau=data.frame(tableau)
    tableau=cbind(texte,tableau)
    
    write.table(tableau,"Nom.csv",row.names=F,sep=';',dec=',', na="")

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/02/2017, 00h52
  2. Problèmes virus pc bureau noir fenetres ouvertes Windows - Delayed Write Failed
    Par petouna dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 2
    Dernier message: 13/11/2011, 22h57
  3. Aide pour surveiller serialPorts.read/write et process.start
    Par Rendar dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 10/06/2011, 11h47
  4. aidez moi !!!! readprocessmemory ou write process memory me renden fou
    Par heecham dans le forum Matériel - Hardware
    Réponses: 12
    Dernier message: 14/03/2008, 01h29
  5. prb write memory!!
    Par Rock!N-$qu@T dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 10/02/2005, 12h56