R og as.numeric () [lukket]

Lukket. Dette spørgsmål er uden for emnet . Det accepteres i øjeblikket ikke svar.

Kommentarer

  • Hvad er spørgsmålet præcist? Vil du (-0.921,0.389593) som en numerisk vektor?

Svar

Dette er fordi du har læst tallene som faktorer hvis du bruger read.table, kan du prøve header=T eller omstrukturere dataene før de læses. Nogle eksempler på filen skal være nyttige til at løse den.

Løsning ville være at først konvertere faktorer til strenge ved hjælp af as.character og derefter tilbage til tal med as.numeric.

Rediger: Kode, der fungerer for det angivne eksempel:

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

Kommentarer

  • @mbq Eller brug colClasses argumentet i read.table()?
  • @ chl Muligvis; afhænger af, hvordan disse data ser ud.
  • " Dette skyldes, at du har læst numrene som faktorer; hvis du bruger read.table, skal du prøve header = T eller omstrukturere dataene før læsning. Nogle eksempler på filen skal være nyttige til at løse den. " nop. " Løsning ville være at først konvertere faktorer til strenge ved hjælp af as.karakter og derefter tilbage til tal med as.numeric. " nop. samme resultat.
  • @kwak – fjern dem " V1 V2 … " fra filen inden du gør hvad som helst. som.numeric vandt ' t arbejde med ikke-konverterbare elementer i vektor.
  • @mbq: > der gjorde tricket . Jeg forventede noget andet.

Svar

Ville det hjælpe?

> 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 

Den måde, du importerer data på, betyder ikke så meget. Jeg tror, at den kritiske del, hvis konvertere værdi som tegn, så som numerisk (dette gør det muligt at konvertere niveauer af en faktor til deres numeriske modstykker) .

Kommentarer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *