[R-br] Separação de dados em classes usando if e ifelse

Rafael Garcia Cunha rafareds em gmail.com
Terça Março 22 11:50:27 BRT 2016


Pra fazer comparação de igualdade use "=="

Em 22 de março de 2016 11:44, ASANTOS <alexandresantosbr em yahoo.com.br>
escreveu:

> Prezados Listeiros,
>
>      Gostaria de saber por que a abordagem indicada pelo Rafael não
> funciona para caracteres, sendo:
>
> ##Agregação de tratamentos
> RES<-NULL
> RES$var<-sample(LETTERS, 100, replace=TRUE)
> RES$classes<-
> ifelse((RES$var)="A"&(RES$var)="C"&(RES$var)="F"&(RES$var)="H","Classe1",
> ifelse(RES$var="B", "Classe2",
> ifelse(RES$var="W","Classe3","Classe4")))
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> Lattes: http://lattes.cnpq.br/1360403201088680
> OrcID: orcid.org/0000-0001-8232-6722
> Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
> LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
> ======================================================================
>
> Em 22/03/2016 10:35, ASANTOS escreveu:
>
> Muito obrigado Rafael,
>
> Resolvido:
>
> RES<-NULL
> RES$var<-c(rnorm(10,1),rnorm(15,7),rnorm(15,10),rnorm(50,25))
> RES$classes<- ifelse(RES$var<=1,"Classe1",
> ifelse((RES$var)>1&(RES$var)<=2, "Classe2",
> ifelse((RES$var)>2&(RES$var)<=10, "Classe3","Classe4")))
>
> --
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)e-mails:alexandresantosbr em yahoo.com.br
>         alexandre.santos em cas.ifmt.edu.br
> Lattes: http://lattes.cnpq.br/1360403201088680
> OrcID: orcid.org/0000-0001-8232-6722
> Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
> LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
> ======================================================================
>
> Em 22/03/2016 10:22, Rafael Garcia Cunha escreveu:
>
> RES$classes<- ifelse(RES$var<=1, "Classe1", ifelse(RES$var<=2, "Classe2",
> ifelse(RES$var<=10, "Classe3", "Classe4")))
>
> Para colocar 2 comparações você precisa identificar o que você está
> querendo comparar entre os "&", algo do
> tipo: ifelse((RES$var)>1&(RES$var)<=2
>
> Só que se você notar, você está trabalhando com ifelse, então, se o
> primeiro if não for atendido, ele já é maior que 1, então não precisa fazer
> essa comparação novamente.
>
>
> Em 22 de março de 2016 10:58, ASANTOS <alexandresantosbr em yahoo.com.br>
> escreveu:
>
>> Prezados listeiros,
>>
>>       Gostaria se criar uma coluna de classificação do meu objeto var em
>> classes, segundo intervalos arbitrários como quando <=1 vai se chamar
>> "Classe1", >1 e <2 vai se chamar "Classe2", etc. Porém o meu objeto de
>> classificação RES$classes não esta dando certo aliás é uma dúvida que
>> sempre tenho, quando utilizo parênteses ou chaves entre as funções. Segue
>> meu código:
>>
>> RES<-NULL
>> RES$var<-c(rnorm(10,1),rnorm(15,7),rnorm(15,10),rnorm(50,25))
>> RES$classes<- ifelse(RES$var<=1, "Classe1", ifelse(RES$var>1&<=2,
>> "Classe2", ifelse(RES$var>2&<=10, "Classe3", if(RES$var>10, "Classe4"))))
>>
>> Obrigado,
>>
>> --
>> ======================================================================
>> Alexandre dos Santos
>> Proteção Florestal
>> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
>> Campus Cáceres
>> Caixa Postal 244
>> Avenida dos Ramires, s/n
>> Bairro: Distrito Industrial
>> Cáceres - MT                      CEP: 78.200-000
>> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
>> e-mails:alexandresantosbr em yahoo.com.br
>>         alexandre.santos em cas.ifmt.edu.br
>> Lattes: http://lattes.cnpq.br/1360403201088680
>> OrcID: orcid.org/0000-0001-8232-6722
>> Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
>> LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
>> ======================================================================
>>
>> _______________________________________________
>> 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 fornea
>> cdigo mnimo reproduzvel.
>
>
>
>
> --
> Rafael Garcia Cunha
>
> YNWA
>
>
>
> _______________________________________________
> R-br mailing listR-br em listas.c3sl.ufpr.brhttps://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 listR-br em listas.c3sl.ufpr.brhttps://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.
>



-- 
Rafael Garcia Cunha

YNWA
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160322/9e5ea207/attachment.html>


Mais detalhes sobre a lista de discussão R-br