[R-br] Erro 'x' deve ser numérico
Jobenil Luiz Magalhães Júnior
pjobenil em gmail.com
Terça Janeiro 13 10:55:45 BRST 2015
Caro Henry
Quando tentei ajudar estava no meio de uma viagem de férias, e sem acesso
ideal de um computador. O Rodrigo foi bem acertivo na solução do problema
que você apresentou.
A despeito destas dificuldades iniciais esta é uma linguagem muito poderosa
e que com um pouco de paciência valerá o esforço em aprender.
Uma possibilidade de aprendizado, que venho usando com alunos de Ciências
Sociais, é empregar o pacote "Rcmdr" que simula um ambiente "point click".
Atenciosamente
Jobenil Júnior
Em 12 de janeiro de 2015 10:16, Rodrigo Coster <rcoster em gmail.com> escreveu:
> Acho que tu inverteu o nome das variáveis, não?
>
> No seu comando:
>
> cff$Qual.a.sua.idade. <- cut(cff$grupos.de.idade, c(19, 26, 36, 46, 56,
> 66, 76, 80), labels = c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56",
> "57 ate 66", "67 ate 76", "acima de 77"))
>
>
> Cria a variável "Qual.a.sua.idade." (que já existe e, portanto, será
> sobrescrita) através dos valores da variável "grupos.de.idade", que não
> existe. Acredito que tu queria fazer o contrário:
>
> cff$grupos.de.idade <- cut(cff$Qual.a.sua.idade., c(19, 26, 36, 46, 56,
> 66, 76, 80), labels = c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56",
> "57 ate 66", "67 ate 76", "acima de 77"))
>
>
> Lembrando que o intervalo não inclui o limite inferior. Como no tu caso o
> limite inferior do 1o intervalo é 19 e tu possui um dado com 19, talvez
> seja interessante incluir o limite inferior no 1o intervalo através do
> parâmetro *include.lowest*
>
> cff$grupos.de.idade <- cut(cff$Qual.a.sua.idade., c(19, 26, 36, 46, 56,
> 66, 76, 80), labels = c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56",
> "57 ate 66", "67 ate 76", "acima de 77"), include.lowest = TRUE)
>
> Veja aqui a diferença dos 2:
>
> cut(cff$Qual.a.sua.idade., c(19, 26, 36, 46, 56, 66, 76, 80), labels =
> c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56", "57 ate 66", "67 ate
> 76", "acima de 77"))
> [1] acima de 77 <NA> 37 ate 46 27 ate 36 27 ate 36 47 ate 56
>
> Levels: 19 ate 26 27 ate 36 37 ate 46 47 ate 56 57 ate 66 67 ate 76 acima
> de 77
> cut(cff$Qual.a.sua.idade., c(19, 26, 36, 46, 56, 66, 76, 80), labels =
> c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56", "57 ate 66", "67 ate
> 76", "acima de 77"), include.lowest = TRUE)
> [1] acima de 77 19 ate 26 37 ate 46 27 ate 36 27 ate 36 47 ate 56
>
> Levels: 19 ate 26 27 ate 36 37 ate 46 47 ate 56 57 ate 66 67 ate 76 acima
> de 77
>
>
> []'s
>
>
> 2015-01-12 11:05 GMT-02:00 Henry Mazer <henrymazer em yahoo.com.br>:
>
> E como faço pra resolver isso, por gentileza?
>>
>>
>> Em Domingo, 11 de Janeiro de 2015 17:28, Fernando Antonio de souza <
>> nandodesouza em gmail.com> escreveu:
>>
>>
>> Estou sem acesso ao computador aqui para comprovar mas acho q o problema
>> eh que o objeto retornado pela função cut() possui dimensões diferentes do
>> objeto cff$Qual.a.sua.idade e por esse motivo não é possível substituir um
>> objeto ao outro.
>> Em 11/01/2015 14:15, "Henry Mazer" <henrymazer em yahoo.com.br> escreveu:
>>
>> Obrigado.
>> Mas agora apareceu este erro:
>> Erro em `$<-.data.frame`(`*tmp*`, "Qual.a.sua.idade.", value =
>> integer(0)) :
>> replacement has 0 rows, data has 6
>>
>> Não sei se entendi certo, mas parece que a variável "Qual.a.sua.idade."
>> não era de números inteiros.
>> Fiz o seguinte:
>> as.integer(cff$Qual.a.sua.idade.)
>>
>> mas o erro continua.
>>
>>
>> Em Domingo, 11 de Janeiro de 2015 7:29, Jobenil Luiz Magalhães Júnior <
>> pjobenil em gmail.com> escreveu:
>>
>>
>> Henrique tente as.numeric(cff$grupos.de.idade).
>>
>> Enviado do meu iPad
>>
>> Em 11/01/2015, às 02:18, Henry Mazer <henrymazer em yahoo.com.br> escreveu:
>>
>> Olá!
>>
>> Meu nome é Henry e sou um iniciante em R.
>>
>> Vou descrever o que fiz e qual foi o resultado:
>> importei o seguinte arquivo http://www.datafilehost.com/d/8c230f1e
>> deste jeito:
>> cff <- read.csv('MyData.csv')
>>
>> e tentei criar uma variável nova:
>> cff$Qual.a.sua.idade. <- cut(cff$grupos.de.idade, c(19, 26, 36, 46, 56,
>> 66, 76, 80), labels = c("19 ate 26", "27 ate 36", "37 ate 46", "47 ate 56",
>> "57 ate 66", "67 ate 76", "acima de 77"))
>>
>> e recebi o seguinte erro:
>> Erro em cut.default(cff$grupos.de.idade, c(19, 26, 36, 46, 56, 66, 76, :
>> 'x' deve ser numérico
>>
>> Procurei aqui na lista e não encontrei a resposta.
>>
>> Agradeço desde já pela ajuda.
>>
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>>
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>>
>>
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>> código mínimo reproduzível.
>>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150113/6829e73c/attachment.html>
Mais detalhes sobre a lista de discussão R-br