Fechado. Esta questão está fora do tópico . Atualmente não está aceitando respostas.
Comentários
- Qual é exatamente a pergunta? Você quer (-0,921,0.389593) como um vetor numérico?
Resposta
Isso porque você leu os números como fatores; se você usar read.table
, tente header=T
ou reestruture os dados antes da leitura. Alguns exemplos do arquivo devem ser úteis para resolvê-lo.
A solução alternativa seria primeiro converter os fatores em strings usando as.character
e depois voltar para números com as.numeric
.
Editar: código funcionando para o exemplo fornecido:
readLines("<filename>")->z read.table(textConnection(z[-grep("V",z)]))
Comentários
- @mbq Ou use o argumento
colClasses
emread.table()
? - @ chl Possivelmente; depende da aparência desses dados.
- " Isso ocorre porque você leu os números como fatores; se você usar read.table, tente header = T ou reestruture os dados antes de ler. Alguns exemplos do arquivo devem ser úteis para resolvê-lo. " nop. " A solução alternativa seria primeiro converter fatores em strings usando as.character e depois voltar para números com as.numeric. " nop. mesmo resultado.
- @kwak – remova aqueles " V1 V2 … " do arquivo antes de fazer nada. as.numeric ganhou ' t funcionar com elementos não convertíveis no vetor.
- @mbq: > que funcionou . Estava esperando outra coisa.
Resposta
Isso ajudaria?
> 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
A maneira como você importa os dados não importa tanto; acho que a parte crítica se converter o valor como caractere e depois como numérico (isso permite converter os níveis de um fator em suas contrapartes numéricas) .
Comentários
- você pode usar data.matrix () para esse stat.ethz. ch / R-manual / R-devel / library / base / html / …