R og as.numeric () [lukket] (Norsk)

Stengt. Dette spørsmålet er utenfor emnet . Det aksepteres for øyeblikket ikke svar.

Kommentarer

  • Hva er spørsmålet akkurat? Vil du ha (-0.921,0.389593) som en numerisk vektor?

Svar

Dette er fordi du har lest tallene som faktorer; Hvis du bruker read.table, kan du prøve header=T eller omstrukturere dataene før du leser dem. Noen eksempler på filen bør være nyttige for å løse den.

Løsning vil være å først konvertere faktorer til strenger ved hjelp av as.character og deretter tilbake til tall med as.numeric.

Edit: Kode som fungerer for gitt eksempel:

readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)])) 

Kommentarer

  • @mbq Eller bruk colClasses argumentet i read.table()?
  • @ chl Muligens; avhenger av hvordan disse dataene ser ut.
  • " Dette er fordi du har lest tallene som faktorer; Hvis du bruker read.table, kan du prøve header = T eller omstrukturere dataene før du leser dem. Noen eksempler på filen skal være nyttige for å løse den. " nr. " Løsning ville være å først konvertere faktorer til strenger ved hjelp av som.karakter og deretter tilbake til tall med as.numeric. " nr. samme resultat.
  • @kwak – fjern de " V1 V2 … " fra filen før du gjør det hva som helst. as.numeric vant ' t arbeid med ukonverterbare elementer i vektor.
  • @mbq: > som gjorde susen . Jeg ventet noe annet.

Svar

Ville det hjelpe?

> 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 

Måten du importerer data spiller ingen rolle så mye. Jeg tror den kritiske delen om å konvertere verdi som tegn, så som numerisk (dette gjør det mulig å konvertere nivåer av en faktor til deres numeriske kolleger) .

Kommentarer

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *