Zárt. Ez a kérdés témán kívül van . Jelenleg nem fogadja el a válaszokat.
Megjegyzések
- Mi a kérdés pontosan? A (-0.921,0.389593) számjegyként kívánja használni?
Válasz
Ez azért van, mert elolvasta a számok mint tényezők; ha a következőt használja: read.table
, próbálkozzon header=T
, vagy az adatok átstrukturálása előtt olvassa el. A fájl néhány példája hasznos lehet a megoldásában.
A megoldás az lenne, ha a tényezőket először karakterláncokká konvertálná a as.character
használatával, majd vissza a as.numeric
.
Szerkesztés: A megadott példához tartozó kód működik:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Megjegyzések
- @mbq Vagy használja a
colClasses
argumentumot aread.table()
? - @ chl Esetleg; attól függ, hogyan néznek ki ezek az adatok.
- " Ennek oka, hogy a számokat tényezőként olvasta el; ha a read.table fájlt használja, próbálkozzon a header = T paranccsal, vagy az adatok átstrukturálása előtt olvassa el. A fájl néhány mintájának hasznos lehet a megoldás. " nop. A " megoldás az lenne, ha először a tényezőket konvertálnánk karakterláncokká az as.character használatával, majd vissza az as.numeric használatával. " nop. ugyanaz az eredmény.
- @kwak – távolítsa el a fájlból azokat az " V1 V2 … " fájlokat bármi. Az as.numeric nem fog ' dolgozni olyan vektorral, amelynek nem konvertálható elemei vannak.
- @mbq: > . Valami mást vártam.
Válasz
Segítene ez?
> 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
Az adatok importálásának módja nem számít annyira; szerintem a kritikus rész, ha az értéket karakterként, majd numerikusvá konvertálja (ez lehetővé teszi egy tényező szintjének konvertálását numerikus megfelelőikké) .