Toujours dans l’otique d'apprendre à utiliser R (parce que je suis une quiche), je cherche à faire une ACM avec le package FactoMineR.
Il se trouve que j'ai trouvé des données venant de l'institutionnal Profiles Database (IDP) pour m'entrainer.
J'ai 17 variables pour chaque pays et ce sont toutes des variables qualitatives. Elles ont toutes un niveau entre 0 et 4.
J'ai essayé de faire une ACM avec res.mca=MCA() etc. Le problème est la réponse :
Code : Tout sélectionner
Error in dimnames(res) <- list(attributes(tab)$row.names, listModa) :
length of 'dimnames' [2] not equal to array extent
Après avoir réfléchit j'ai essayé de connaitre le nombre de modalité (level ) des mes variables. (N.B: violence est le nom du doc) Or:
Code : Tout sélectionner
> sapply(violence, nlevels)
Pays Elec Popcorr Polcorr Sec Esec Cona Conp Conc Ref Avio Icon
57 0 0 0 0 0 0 0 0 0 0 0
Scon Lcon Popv viop Vioc Vior
0 0 0 0 0 0
C'est la première fois que j'utilise des données que je n'ai pas crées, mais je pensais que les modalités des facteurs étaient directement reprises par R (vu que mes données ont des niveaux de 0 à 4).
Voila mon problème: J'ai essayé de redonner les niveaux de facteurs à mes données:
Code : Tout sélectionner
> violence<-read.csv("violence_csv.csv", header = TRUE, sep=";", colClasses=c("numeric", "factor"))
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :
scan() expected 'a real', got 'Angola'
(N.B: Angola est le premier nom de pays)
Je n'y arrive pas. Le nom des pays semble bloqué.
C'est surement une demande super idiote, mais je n'ai pas trouvé la réponse. (En faite ce sera une série de question^^)
Quelle est la commande pour mettre les niveaux aux variables?
colClasse n'est pas la bonne? (est-ce qu'on peut exclure une colonne? par exemple celle des pays)
De manière générale quand on charge des données vaut-il mieux les remettre aux bons niveaux? (sous-entendu ça ne se fait pas seul)
Est-ce bien ça qui m’empêche de faire une ACM?
Si la réponse existe et que j'ai mal cherché je vous présente mes excuses.
Par avance, Merci :)