Uzavřeno. Tato otázka je mimo téma . Momentálně nepřijímá odpovědi.
Komentáře
- Jaká je přesně otázka? Chcete (-0,921,0,389593) jako numerický vektor?
Odpovědět
Je to proto, že jste si přečetli čísla jako faktory; pokud používáte read.table
, zkuste header=T
nebo před přečtením restrukturalizovat data. K vyřešení by měl být užitečný nějaký soubor souboru.
Řešením by bylo nejprve převést faktory na řetězce pomocí as.character
a pak zpět na čísla s as.numeric
.
Upravit: Kód funguje pro uvedený příklad:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Komentáře
- @mbq Nebo použijte argument
colClasses
vread.table()
? - @ chl Možná; záleží na tom, jak tato data vypadají.
- " Je to proto, že jste čísla četli jako faktory; pokud používáte read.table, zkuste header = T nebo před čtením restrukturalizujte data. K vyřešení by měl být užitečný nějaký vzorek souboru. " nop. " Řešením by bylo nejprve převést faktory na řetězce pomocí as.character a pak zpět na čísla s as.numeric. " nop. stejný výsledek.
- @kwak – před provedením odeberte ze souboru " V1 V2 … " cokoliv. as.numeric nebude pracovat ' s nepřeměnitelnými prvky ve vektoru.
- @mbq: >, který to zvládl . Očekával jsem něco jiného.
Odpověď
Pomohlo by to?
> 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
Způsob, jakým importujete data, na tom tolik nezáleží; myslím, že kritická část, pokud chcete převést hodnotu jako znak, pak jako numerickou (to umožňuje převést úrovně faktoru na jejich numerické protějšky) .