Problème conversion as.numeric matrice
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
Code:
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) |
Et la c'est le drame :
Code:
1 2
| > res<-princomp(Z2)
Error in cov.wt(z) : 'x' must contain finite values only. |
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.
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 :)