[R-br] Uso do ifelse

Lucas Petri Damiani lucaspd16 em gmail.com
Sexta Dezembro 16 14:48:38 BRST 2011


av$p_g<-ifelse(av$sexo=="masculino",
+                     cut(av$perc_g, brM, RES, inc=T, right=F, ord=T),
+                     cut(av$perc_g, brF, RES, inc=T, right=F, ord=T))
> av$classi <- factor(av$classi, lev=1:5, lab=RES, ord=T)

 av$classi  no lugar do   av$p_g


2011/12/16 Edson Lira <edinhoestat em yahoo.com.br>

> prof Paulo, o qe estou fazendo errado?
>
> A variável em análise é o percentual de gordura (inteira)
> av$p_g<-ifelse(av$sexo=="masculino",
> +                     cut(av$perc_g, brM, RES, inc=T, right=F, ord=T),
> +                     cut(av$perc_g, brF, RES, inc=T, right=F, ord=T))
> > av$classi <- factor(av$classi, lev=1:5, lab=RES, ord=T)
> Erro em `$<-.data.frame`(`*tmp*`, "classi", value = integer(0)) :
>   replacement has 0 rows, data has 174
>
> Edson Lira
> Estatístico
> Manaus-Amazonas
>   ------------------------------
> *De:* Paulo Justiniano <paulojus em leg.ufpr.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em listas.c3sl.ufpr.br>
> *Enviadas:* Sexta-feira, 16 de Dezembro de 2011 7:02
>
> *Assunto:* Re: [R-br] Uso do ifelse
>
> Edson
>
> de fato, o seu critério de classificação é diferente para cada sexo.
> MNas voce ainda pode user o cut dentro do ifelse
> veja este exemplo com breaks diferentes para M e F
>
> df <- data.frame(sexo=rep(c("M", "F"), each=10), dados=round(runif(20),
> dig=2))
> brM <- c(0, 0.2, 0.5, 0.8, 1)
> brF <- c(0, 0.1, 0.3, 0.6, 1)
> RES <- c("Baixo", "Medio", "Alto", "Muito alto")
> df$classi <- ifelse(df$sexo == "M",
>                         cut(df$dados, brM, RES, inc=T, right=F, ord=T),
>                         cut(df$dados, brF, RES, inc=T, right=F, ord=T))
> df$classi <- factor(df$classi, lev=1:4, lab=RES, ord=T)
> df
>
>   sexo dados    classi
> 1    M  0.54      Alto
> 2    M  0.56      Alto
> 3    M  0.45      Medio
> 4    M  0.59      Alto
> 5    M  1.00 Muito alto
> 6    M  0.71      Alto
> 7    M  0.02      Baixo
> 8    M  0.83 Muito alto
> 9    M  0.22      Medio
> 10    M  0.80 Muito alto
> 11    F  0.52      Alto
> 12    F  0.59      Alto
> 13    F  0.47      Alto
> 14    F  0.72 Muito alto
> 15    F  0.08      Baixo
> 16    F  0.71 Muito alto
> 17    F  0.19      Medio
> 18    F  0.32      Alto
> 19    F  0.09      Baixo
> 20    F  0.17      Medio
>
>
>
>
>
>
> On Thu, 15 Dec 2011, Edson Lira wrote:
>
> > Prof. Paulo, o cut seria a saida, se fosse feito por estrato (masculino
> e feminino), mas não é o caso, preciso fazer
> > no mesmo banco a análise para masculino e feminino.
> >
> > Veja os comandos abaixo:
> >
> > av$pg_f<-ifelse(av$sexo=="masculino",
> >          ifelse(av$perc_g<=15&av$perc_g<20),"normal",""),
> >
> >           ifelse(av$perc_g<=20&av$perc_g<25),"mod obeso",""),
> >
> >           ifelse(av$perc_g<=25&av$perc_g<30),"exc obeso",""),
> >
> >           ifelse(av$perc_g<=10&av$perc_g<15),"ideal",""),
> >
> >           ifelse(av$perc_g<=0&av$perc_g<10),"essencial",""),
> >
> >          ifelse(av$sexo=="feminino",
> >
> >           ifelse(av$perc_g<=25&av$perc_g<30),"normal",""),
> >
> >           ifelse(av$perc_g<=30&av$perc_g<35),"mod obeso",""),
> >
> >           ifelse(av$perc_g<=35&av$perc_g<40),"exc obeso",""),
> >
> >           ifelse(av$perc_g<=14&av$perc_g<18),"ideal",""),
> >
> >           ifelse(av$perc_g<=0&av$perc_g<14),"essencial","")
> >
> >         ))
> > O que pode estar errado?
> > Edson Lira
> > Estatístico
> > Manaus-Amazonas
> >
> >
> ____________________________________________________________________________________________________________________
> > De: Paulo Justiniano <paulojus em leg.ufpr.br>
> > Para: R-br Lista <r-br em listas.c3sl.ufpr.br>
> > Enviadas: Quinta-feira, 15 de Dezembro de 2011 9:50
> > Assunto: Re: [R-br] Uso do ifelse
> >
> > Edson
> > nao vi seu dados e codigos mas, se entendi voce quer cricar as
> caterorias a partir de dados origineis
> >
> > cut() parce ser a solução:
> >
> > > x
> > [1] 0.04762629 0.68057869 0.82633911 0.74263816 0.18047177 0.76626677
> > [7] 0.49187248 0.43507250 0.18670542 0.95927841 0.62133031 0.62823814
> > [13] 0.45227403 0.53154416 0.98763860 0.32339100 0.63901674 0.35742343
> > [19] 0.64453429 0.43150140
> > > cut(x, br=c(0, 0.2, .5, 0.8, 1), lab=c("baixo", "medio", "alto", "muito
> > alto"))
> > [1] baixo      alto      muito alto alto      baixo      alto
> > [7] medio      medio      baixo      muito alto alto      alto
> > [13] medio      alto      muito alto medio      alto      medio
> > [19] alto      medio
> > Levels: baixo medio alto muito alto
> >
> >
> > On Thu, 15 Dec 2011, Edson Lira wrote:
> >
> > > R-istas, estou com um problema no uso do ifelse (Elias, finalmente
> postei o CMR).
> > >
> > > Tenho dois problemas:
> > >
> > > 1. ao avaliar percentual de gordura em homens e mulheres, temos os
> seguintes parâmetros
> > >
> > > Para Homens
> > >     15|-20 =  Limite normal
> > >     20|-25 =  Moderadamente obeso
> > >     25|-30 =  Excessivamente obeso
> > >     10|-14 =  Gordura ideal
> > >         03 =  Gordura essencial
> > >
> > > Para Mulheres
> > >     25|-30 =  Limite normal
> > >     30|-35 =  Moderadamente obeso
> > >     35|-40 =  Excessivamente obeso
> > >     14|-18 =  Gordura ideal
> > >         12 =  Gordura essencial
> > >
> > > Como fazê-lo sem criar subcojunto de homens e mulheres usando o
> ifelse? No banco as variáveis são sexo e perc_g.
> > >
> > >
> > > 2. Foi medido a pressão sitólica e distólica de um grupo, tenho os
> seguintes parâmetros ( que me foram passados):
> > >
> > > sistólica       diastólica      categoria
> > > <130               <85            normal
> > > 130-139           85-89           normal limítrofe
> > > 140-159           90-99           estágio 1
> > > 160-179          100-109          estágio 2
> > > >180               >110           estágio 3
> > > >=210              >=120          estágio 4
> > > <140               <90            hipert sist isolada
> > > Como fazê-lo usando o ifelse?
> > >
> > > No endereço abaixo postei uma parte do banco de dados e o scritp que
> > > tentei implementar, mas não conseGui rodá-lo.
> > >
> > >
> > > https://gist.github.com/1481221 OU
> > > git://gist.github.com/1481221.git
> > >
> > >
> > >
> > > []'s.
> > > Edson Lira
> > > Estatístico
> > > Manaus-Amazonas
> > >
> > >
> > _______________________________________________
> > 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/20111216/2ad892fd/attachment.html>


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