Chiusa. Questa domanda è fuori tema . Attualmente non accetta risposte.
Commenti
- Qual è esattamente la domanda? Vuoi (-0.921,0.389593) come vettore numerico?
Risposta
Questo perché hai letto i numeri come fattori; se utilizzi read.table
, prova header=T
o ristruttura i dati prima di leggerli. Qualche esempio del file dovrebbe essere utile per risolverlo.
La soluzione alternativa sarebbe convertire prima i fattori in stringhe utilizzando as.character
e poi tornare ai numeri con as.numeric
.
Modifica: codice funzionante per lesempio fornito:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Commenti
- @mbq Oppure utilizza largomento
colClasses
inread.table()
? - @ chl possibilmente; dipende dallaspetto di questi dati.
- " Questo perché hai letto i numeri come fattori; se usi read.table, prova header = T o ristruttura i dati prima di leggerli. Qualche esempio del file dovrebbe essere utile per risolverlo. " nop. " La soluzione alternativa consiste nel convertire prima i fattori in stringhe utilizzando as.character e poi di nuovo in numeri con as.numeric. " nop. stesso risultato.
- @kwak – rimuovi quelli " V1 V2 … " dal file prima di eseguire nulla. as.numeric ha vinto ' con elementi non convertibili nel vettore.
- @mbq: > che ha funzionato . Mi aspettavo qualcosaltro.
Risposta
Sarebbe daiuto?
> 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
Il modo in cui importi i dati non ha” molta importanza; penso che la parte critica se convertire il valore come carattere poi come numerico (questo permette di convertire i livelli di un fattore nelle loro controparti numeriche) .
Commenti
- puoi usare data.matrix () per quello stat.ethz. ch / R-manual / R-devel / library / base / html / …