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 iread.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
- du kan bruge data.matrix () til den stat.ethz. ch / R-manual / R-devel / library / base / html / …