Suljettu. Tämä kysymys on aiheen ulkopuolella . Se ei tällä hetkellä hyväksy vastauksia.
Kommentit
- Mikä on kysymys tarkalleen? Haluatko (-0,921,0,389593) numeerisena vektorina?
Vastaa
Tämä johtuu siitä, että olet lukenut luvut tekijöinä; Jos käytät read.table
, kokeile header=T
tai järjestele tiedot uudelleen ennen lukemista. Joitakin esimerkkejä tiedostosta pitäisi olla hyödyllinen sen ratkaisemiseksi.
Kiertotapa olisi muuntaa tekijät ensin merkkijonoiksi käyttämällä as.character
ja sitten takaisin numeroihin, joissa on as.numeric
.
Muokkaa: Koodi toimii annetussa esimerkissä:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Kommentit
- @mbq Tai käytä
colClasses
-argumenttia kohdassaread.table()
? - @ chl Mahdollisesti; riippuu näiden tietojen ulkoasusta.
- " Tämä johtuu siitä, että olet lukenut numerot tekijöinä; Jos käytät read.table-taulukkoa, kokeile header = T tai muokkaa tiedot ennen lukemista. Joitakin esimerkkejä tiedostosta pitäisi olla hyödyllinen sen ratkaisemiseksi. " nop. " Kiertotapa olisi muuntaa tekijät ensin merkkijonoiksi käyttämällä as.characteria ja sitten takaisin numeroiksi käyttämällä as.numeric. " nop. sama tulos.
- @kwak – poista ne " V1 V2 … " tiedostosta ennen kuin teet mitä vain. as.numeric ei voittanut ' työtä, jossa vektorissa ei ole muunnettavia elementtejä.
- @mbq: > joka teki tempun . Odotin jotain muuta.
Vastaa
Auttaako se?
> 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
Tapalla, jolla tuot tietoja, ei ole väliä niin paljon; mielestäni kriittisellä osalla, jos arvo muunnetaan merkiksi, sitten numeeriseksi (tämä antaa mahdollisuuden muuntaa tekijän tasot vastaaviksi) .
Kommentit
- voit käyttää data.matrix (): aa stat.ethz. ch / R-manual / R-devel / library / base / html / …