Bonjour à tous
J'ai typiquement récupéré des données chiffrées d'une machine et j'aimerais faire une Analyse en Composantes Principales dessus (avec princomp ou Factominer par exemple). Hors je rencontre un problème : impossible de convertir mes données matricielles de mon fichier comme des données numériques....
Mon code
Et la c'est le drame :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 # clear memory and graphics rm(list=ls()) graphics.off() #packages required library(matlab) library(Factominer) library(graphics) library(stats) #Main Y <- read.csv("XXXX.csv", sep=";",row.names=1, header=TRUE) # pour avoir une idée c'est une matrice de 15 colonnes dont 8 chiffrées (les 7 autres sont des infos) et environ 25 000 lignes. Y <- as.matrix(Y) Z <- Y[,8:15] #Matrice pour les calculs ou mes données chiffrées sont présentes (données supérieures ou égales à 0) n <- dim(Z) # J'ai testé, les dimensions sont logiques et j'ai par exemple des nombres "3.1458" avec les guillemets et pas de NA en vues dans ma matrice rows<-n[1] cols<-n[2] Z2<-Z #travail sur une seconde matrice # change Z2 as a numeric value for ( i in 1:rows){ for ( j in 1:cols){ Z2[i,j]<-as.numeric(Z[i,j]) } } res<-princomp(Z2)
Impossible de rentrer des valeurs numériques dans ma matrice. Un is.matrix me donne toujours un résultat négatif dans Z et Z2. J'ai essayé par exemple : Z[1,1] <-5 et mon 5 est aussi considéré comme une valeur non numérique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 > res<-princomp(Z2) Error in cov.wt(z) : 'x' must contain finite values only.
Auriez-vous une idée? Il se peut bien que cela vienne de moi à cause de la chaleur mais je sèche un peu et suit à cours d'idée et google ne m'a pas aidé sur ce coup...
Bon après midi et merci
Partager