Acest lucru se datorează faptului că ați citit numerele ca factori; dacă utilizați read.table
, încercați header=T
sau restructurați datele înainte de a le citi. O parte din eșantionul fișierului ar trebui să fie util pentru a-l rezolva.
Soluția ar fi să convertiți mai întâi factorii în șiruri folosind as.character
și apoi să reveniți la numerele cu as.numeric
.
Editați: Codul funcționează pentru exemplu furnizat:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Comentarii
Ar ajuta asta?
> a <- as.data.frame(matrix(scan("1.txt", what="character", na.strings=c("NA",paste("V",1:6,sep=""))), nc=13, byrow=T)) > class(a[,1]) [1] "factor" > for (i in 1:ncol(a)) a[,i] <- as.numeric(as.character(a[,i])) > class(a[,1]) [1] "numeric" > summary(a) # should work here
Modul în care importați date nu contează atât de mult; cred că partea critică este de a converti valoarea ca caracter apoi ca numeric (acest lucru permite conversia nivelurilor unui factor în omologii lor numerici) .
Comentarii