R e as.numeric () [closed]

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 in read.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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *