Statistiques

tout sur les statistiques
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Partagez | 
 

 [Réglé] Réaliser une ACM avec R

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 12:00

Bonjour,

Je profite de ce forum pour vous faire part d'un petit problème que je rencontre avec le logiciel libre R. J'aimerais faire une ACM sur mon jeu de données.
Cette fonctionnalité n'étant pas disponible par défaut, j'ai installé le package FactoMineR contenant la fonction MCA. J'ai testé cette dernière sur le jeu de données "poison" et tout s'est déroulé avec succès.
Par contre, sitôt que je tente de l'utiliser pour mon jeu de données, j'obtiens le message d'erreur suivant:

Error in data.frame(value, row.names = rn, check.names = FALSE, check.rows = FALSE) :
duplicate row.names: 0, 1, 2

Il me semble pourtant que le codage de mes données est similaire à celui du jeu nommé "poison". Il y a manifestement un lien avec "0" "1" et "2" qui sont les trois scores possibles de plusieurs de mes variables, mais je n'arrive pas à comprendre en quoi cela cause un problème à R.

Quelqu'un connaîtrait-il la signification de cette erreur?

Merci d'avance!

PS: si vous connaissez un forum spécialement dédié aux utilisateurs de R, je serais heureux d'en apprendre l'adresse.


Dernière édition par le Mer 28 Fév - 11:27, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 13:58

Tu as plusieurs lignes qui portent le même nom. Il faudrait voir comment tu as construit ton data.frame. Sinon, une solution est d'activer check.rows=T quand tu crées le tableau.

Personnellement, j'utilise le paquet ade4 pour faire des ACP, AFC et compagnie (beaucoup de doc: http://pbil.univ-lyon1.fr/R/enseignement.html).

Pour le forum dédié:
http://forums.cirad.fr/logiciel-R/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 19:16

Pour commencer, merci pour la réponse rapide!

Mon jeu de données a été créé via l'importation (avec read.csv) d'un fichier excel préalablement exporté en ".csv". J'ai veillé à spécifier le paramètre "headers" à True, ainsi que le paramètre "row.names" à 1.
Voyant qu'aucune ACM ne voulait se lancer sur mon tableau (pourtant visuellement identique au jeu de données "poison"), j'ai tenté de convertir chaque variable de ce jeu en un facteur (via "as.factor(x)"), mais sans succès. Le message d'erreur est toujours le même.

Je ne vois pas d'où peut bien provenir le problème...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 19:28

essaye row.names=NULL
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 19:40

Gooki a écrit:
essaye row.names=NULL

J'avais déjà essayé (et viens de retenter). Hélas ça ne marche pas Crying or Very sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 19:42

envoie tes données en mp


Dernière édition par le Mer 28 Fév - 7:44, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mar 27 Fév - 20:02

Voilà, je t'ai envoyé les données par mail.

Alors, c'est grave Docteur?

(Merci beaucoup en tout cas Embarassed )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 28 Fév - 10:03

Soit le fichier demoACM.csv. chaque col est un facteur dont certains niveaux ont le même nom que d'autres niveaux dans d'autres facteurs.
Apparemment, FactoMineR n'aime pas ça. Alors,

Code:

>d<-read.csv("demoACM.csv", sep=";", header=T, row.names=1, colC="factor")
> library(FactoMineR)
> for (i in 1:dim(d)[2]) d[,i]<-paste(colnames(d)[i],d[,i], sep=".")
> par(mfrow=c(3,1))
> MCA(d)

ça marche bien chez moi
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 28 Fév - 10:59

Effectivement ça fonctionne!

Il ne me reste plus qu'à comprendre la signification de ces diverses lignes. Si je comprends bien, après avoir importé les données en spécifiant que chaque colonne doit être considérée comme un facteur ("colC='factor'"), tu crées une boucle qui va parcourir toutes les colonnes ("for (i in 1:dim(d)[2])") et concaténer à chaque résultat le nom de la colonne en la séparant avec un "." ('d[,i]<-paste(colnames(d)[i],d[,i], sep="."').
Je peine par contre à comprendre l'utilité de l'avant dernière ligne ("par(mfrow=c(3,1))").

Et puisque je tiens un utilisateur chevronné, j'en profite pour te poser une dernière question: comment accéder aux diverses fenêtres graphiques qui s'écrasent mutuellement? Existe-t-il un tableau général qui permette d'y accéder? (Je précise que je suis sous MAC OS X).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 28 Fév - 11:04

Tu as tout compris.

Citation :

Je peine par contre à comprendre l'utilité de l'avant dernière ligne ("par(mfrow=c(3,1))").

Et puisque je tiens un utilisateur chevronné, j'en profite pour te poser une dernière question: comment accéder aux diverses fenêtres graphiques qui s'écrasent mutuellement? Existe-t-il un tableau général qui permette d'y accéder? (Je précise que je suis sous MAC OS X).

par(mfrow=c(3,1)) subdivise la fenêtre en trois colonnes sous linux (voir ?par). Je suppose que ça marche pareil sous OSX. Sinon, tu peux tout de suite les exporter. Voir ?Device.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
lesparte



Nombre de messages: 6
Date d'inscription: 27/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 28 Fév - 11:27

Ok, j'ai tout saisi!

Merci beaucoup pour ton aide! Le tout aura été plus laborieux que sur XLSTAT, mais cette fois c'est libre! Very Happy

Vive R! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Gooki



Nombre de messages: 9
Date d'inscription: 13/02/2007

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 28 Fév - 11:36

Et les graphiques sont plus propres!
Longue vie à R! \°/
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
alicerenard



Nombre de messages: 1
Date d'inscription: 25/04/2012

MessageSujet: Re: [Réglé] Réaliser une ACM avec R   Mer 25 Avr - 12:20

Bonjour, vos réponses m'ont bien aidé, car j'avais le même problème de data.frame, avant d'essayer la solution avec le code de Gooki. Et effectivement, ça a partiellement marché, puisuque le message d'erreur ne s'affiche plus... Mais a été remplacé par un autre ! :

"Erreur dans xi[j] : les indices négatifs ne peuvent être mélangés qu'à des 0."

Auriez-vous une solution pour m'aider, svp ??
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

[Réglé] Réaliser une ACM avec R

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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