| [Réglé] Réaliser une ACM avec R | |
|
|
Auteur | Message |
---|
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 14: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 - 13:27, édité 1 fois | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 15: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/ | |
|
| |
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 21: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... | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 21:28 | |
| | |
|
| |
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 21:40 | |
| - Gooki a écrit:
- essaye row.names=NULL
J'avais déjà essayé (et viens de retenter). Hélas ça ne marche pas | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 21:42 | |
|
Dernière édition par le Mer 28 Fév - 9:44, édité 1 fois | |
|
| |
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mar 27 Fév - 22:02 | |
| Voilà, je t'ai envoyé les données par mail. Alors, c'est grave Docteur? (Merci beaucoup en tout cas ) | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 28 Fév - 12: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 | |
|
| |
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 28 Fév - 12: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). | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 28 Fév - 13: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. | |
|
| |
lesparte
Nombre de messages : 6 Date d'inscription : 27/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 28 Fév - 13: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! Vive R! | |
|
| |
Gooki
Nombre de messages : 9 Date d'inscription : 13/02/2007
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 28 Fév - 13:36 | |
| Et les graphiques sont plus propres! Longue vie à R! \°/ | |
|
| |
alicerenard
Nombre de messages : 1 Date d'inscription : 25/04/2012
| Sujet: Re: [Réglé] Réaliser une ACM avec R Mer 25 Avr - 14: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 ?? | |
|
| |
Contenu sponsorisé
| Sujet: Re: [Réglé] Réaliser une ACM avec R | |
| |
|
| |
| [Réglé] Réaliser une ACM avec R | |
|