R e as.numeric () [fechado]

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *