Je dois réaliser des ACP sur un jeu de donnees de valeurs numériques.
Voici mon code :
Code : Tout sélectionner
methodeACP <- function(fichierImg1,fichierImg2,fichierText,fichierText1,fichierText2,type_image,donnees) {
library(ade4)
donnees -> tab
# charge les donnees dans la variable tab
princomp(tab,cor=TRUE) -> pcavc
# calcule la matrice des distances par rapport aux différentes corrélations
summary(pcavc)
# tableau des eigenvalues (valeurs propres)
bitmap(fichierImg1,type_image,width=5,height=5,res=72,pointsize=12)
# graph des valeurs propres, représente summary
biplot(pcavc,choice=1:2)
dev.off()
load=loadings(pcavc)
write.csv2(load,fichierText,row.names=TRUE)
# coordonnées des variables
bitmap(fichierImg2,type_image,width=5,height=5,res=72,pointsize=12)
plot(pcavc)
# graph des variables et des espèces
dev.off()
dudi.pca(tab,scannf = FALSE,nf = 3) -> contr
# recherche des contributions
ir=inertia.dudi(contr,row.inertia = TRUE)
write.csv2(ir,fichierText1,row.names=TRUE)
# -> cf erreur
ic=inertia.dudi(contr,col.inertia = TRUE)
write.csv2(ic,fichierText2,row.names=TRUE)
# -> cf erreur
}
Cette fonction me génère bien le premier ce que je veux mais elle me renvoie une erreur pour les deux dernier "write.csv2" du type :
Code : Tout sélectionner
Erreur dans data.frame(TOT = list(inertia = c(2.67508596662808, 1.05359328027567, :
les arguments impliquent des nombres de lignes différents : 5, 20
Quelqu'un aurait il une idée d'où vient l'erreur et si il y a moyen de la corriger ?
Merci d'avance !
Autre question :
Je dois aussi réaliser une ACP sur des variables non numériques, je sais que l'ACP ne peut pas traiter de telles données et elles doivent être transformées en données
numériques (0-1). Mais je bloque pour savoir comment repérer les colonnes non numériques autrement qu'en les visionnant ! est-ce possible ?
Merci de votre aide !
Romain