To dlatego, że przeczytałeś liczby jako czynniki; jeśli używasz read.table
, spróbuj header=T
lub zmień strukturę danych przed odczytaniem. Do rozwiązania tego problemu powinna być pomocna próbka pliku.
Aby obejść ten problem, najpierw należy przekonwertować czynniki na ciągi znaków za pomocą as.character
, a następnie wrócić do liczb z as.numeric
.
Edycja: Kod działający na podanym przykładzie:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Komentarze
Czy to pomogło?
> 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
Sposób importowania danych nie ma większego znaczenia; myślę, że krytyczna część, jeśli konwertować wartość na znak, a następnie na numeryczną (pozwala to przekonwertować poziomy współczynnika na ich liczbowe odpowiedniki) .
Komentarze