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 :

Erreur avec read.table()


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Erreur avec read.table()
    Bonjour à tous,

    Après avoir cherché une réponse à mon problème sur le forum (sans succès), je viens vous le soumettre ici.

    J'ai un fichier ".txt" contenant un tableau avec "\t" comme séparateur. La première colonne de ce tableau comprend des noms (comme "nom1", "nom2, "nom3" etc.) et la première ligne de ce tableau contient les en-têtes de mes colonnes ("pommes", "poires", "tomates" etc.).

    J'ouvre mon fichier dans R avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read.table("mon_fichier.txt", header=TRUE)
    Tout se passe bien.

    Mais ensuite je souhaite faire une PCA sur ces données avec le package FactoMineR. La formule à utiliser est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mon_acp=PCA("mon_tableau", scale.unit=TRUE,graph=TRUE)
    Seulement quand je fais ça, j'ai le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    The following variables are not quantitative:  "pommes"
    The following variables are not quantitative:  "poires"
    The following variables are not quantitative:  "tomates"
    J'ai cherché d'où venait le problème mais je ne comprends pas. Certes, l'erreur m'indique que les variables "pommes", "poires" et "tomates" ne sont pas des variables quantitatives, mais c'est normal puisque ce sont les en-têtes de mes colonnes ! D'autant que je l'ai précisé avec "header=TRUE" dans la fonction read.table().

    Si l'un(e) d'entre vous pouvait m'aider à résoudre ce problème.

    En vous remerciant,

    Fort en pommes

  2. #2
    Membre du Club
    Homme Profil pro
    Helsinki
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Helsinki
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Points : 64
    Points
    64
    Par défaut Peut être une histoire de guillemets?
    Bonjour,
    Peux-tu enlever les guillemets mis à mon_tableau (c'est un objet), et voir ce que cela donne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mon_tableau <- read.table("mon_fichier.txt", header=TRUE)
    mon_acp <- PCA(mon_tableau, scale.unit=TRUE,graph=TRUE)
    mon_acp

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse Americano,

    Oui, j'ai fait une erreur dans mon post j'ai mis des guillemets alors que je n'en mets pas dans R.
    Par contre, après recherches, j'ai une forme de read.table qui fonctionne avec l'analyse ACP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dataset <- read.table(mon_tableau, header=TRUE, sep="\t", na.strings="NA", dec=",", row.names=1, strip.white=TRUE)
    Mais je ne comprends pas pourquoi par contre...

  4. #4
    Membre du Club
    Homme Profil pro
    Helsinki
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Helsinki
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Points : 64
    Points
    64
    Par défaut Tout le probleme est dans les sáparateurs
    Bonjour,
    Le problème est que les tableaux sous format texte peuvent utiliser une multitude de séparateurs, qui vont définir les différentes colonnes de ton data frame.
    Ta première syntaxe indique uniquement que ton tableau a des entêtes (header=TRUE) mais n'indique pas quels sont les séparateurs entre les différentes colonnes. Alors, R sépare selon sa logique et dans la plupart des cas la séparation est mal faite.
    Par contre, dans ton deuxième cas (celui qui marche), tu indiques bien à R d’utiliser comme séparateur une tabulation (sep="\t") et que tes nombres ont aussi des virgules comme séparateurs de décimaux (dec=",").
    Dans l’avenir, prends la précaution de toujours vérifier le tableau importé en utilisant :
    Exemple : pour chacune de tes deux méthodes d’importation, utilise juste après l'importation du tableau Fix(Dataset) et tu te rendras compte par toi-même que R fusionne dans ton premier cas des colonnes de sorte que le tableau importé ne correspond pas à ton vrai tableau. Dans le deuxième cas, R intègre les séparateurs et le tableau s’affiche correctement. Tu peux voir cela visuellement. Voilà.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette astuce.
    Seulement chez moi ça ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > Fix(Dataset)
    Error: could not find function "Fix"
    La commande Fix fait-elle partie d'une librairie spéciale?

  6. #6
    Membre du Club
    Homme Profil pro
    Helsinki
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Helsinki
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Points : 64
    Points
    64
    Par défaut Correction
    Tu as raison, j'ai écrit sans m'en rendre compte. Tu dois écrire (fix) avec un "f" minuscule et non majuscule. Il s'agit d'une fonction R pour afficher les tables et s'assurer que notre importation est bonne. Tiens-moi au courant.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ah oui effectivement ça fonctionne ainsi!

    Je vais faire quelques tests de read.table et de fix. Je reviendrai sur ce thread si je rencontre des difficultés.

    Merci beaucoup de ton aide!

  8. #8
    Membre du Club
    Homme Profil pro
    Helsinki
    Inscrit en
    Avril 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Finlande

    Informations professionnelles :
    Activité : Helsinki
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 39
    Points : 64
    Points
    64
    Par défaut Resolu
    Bonjour,
    Bien que le problème soit résolu pour toi. Tu peux a présent cliquer sur le petit bouton pour indiquer que la discussion est résolue. Tu as toujours la possibilité de créer d'autres discussions en fonction des questions à soumettre. Salut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/10/2022, 15h29
  2. Importation de données avec read.table
    Par collosus dans le forum R
    Réponses: 3
    Dernier message: 27/05/2013, 10h51
  3. Réponses: 2
    Dernier message: 24/02/2012, 10h54
  4. [MySQL] Erreur avec une Table Temporaire
    Par Stageuse44 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/05/2011, 14h42
  5. Problème avec read.table()
    Par skystef dans le forum R
    Réponses: 7
    Dernier message: 19/02/2010, 09h56

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