Re: [R-br] Uso do ifelse

2024-10-15 Por tôpico R-br
Muito obrigado!

Em ter., 15 de out. de 2024 às 13:30, Cid Póvoas por (R-br) <
r-br@listas.c3sl.ufpr.br> escreveu:

>
> if (dim(sk1$out$Result)[2] == 5) {
>   grupos <- c(sk1$out$Result$G1,
>   sk1$out$Result$G2,
>   sk1$out$Result$G3,
>   sk1$out$Result$G4)
> } else if (dim(sk1$out$Result)[2] == 4) {
>   grupos <- c(sk1$out$Result$G1,
>   sk1$out$Result$G2,
>   sk1$out$Result$G3)
> } else if (dim(sk1$out$Result)[2] == 3) {
>   grupos <- c(sk1$out$Result$G1,
>   sk1$out$Result$G2)
> } else {
>   grupos <- sk1$out$Result$G1
> }
>
> grupos
>
> rm(grupos)
>
> library(dplyr)
>
> grupos <- case_when(
>   dim(sk1$out$Result)[2] == 5 ~ list(c(sk1$out$Result$G1,
>sk1$out$Result$G2,
>sk1$out$Result$G3,
>sk1$out$Result$G4)),
>   dim(sk1$out$Result)[2] == 4 ~ list(c(sk1$out$Result$G1,
>sk1$out$Result$G2,
>sk1$out$Result$G3)),
>   dim(sk1$out$Result)[2] == 3 ~ list(c(sk1$out$Result$G1,
>sk1$out$Result$G2)),
>   TRUE ~ list(sk1$out$Result$G1)
> )
>
> grupos <- unlist(grupos)
>
> rm(grupos)
>
>
> num_grupos <- min(dim(sk1$out$Result)[2], 10)
>
> # Criar dinamicamente a lista de grupos
> grupos <- unlist(lapply(1:num_grupos, function(i)
> sk1$out$Result[[paste0('G', i)]]))
>
> grupos
>
> *Cid Edson Mendonça Póvoas*
> *Agrônomo - **Data Analyst - Crop Protection & Seeds*
> *Tel: +55 73 99151-9565*
> *Lattes : *http://lattes.cnpq.br/2303498368142537
> *LinkedIn :* http://br.linkedin.com/in/cidedson/
> *Whatsapp :* https://wa.me/5573991519565
>
>
> Em ter., 15 de out. de 2024 às 12:56, Maurício Lordêlo por (R-br) <
> r-br@listas.c3sl.ufpr.br> escreveu:
>
>> #Olá,
>> #saudações a tod@s!!!
>> #Vou precisar várias comparações múltiplas usando o
>> #teste de Scott Knott
>> #Quero no final, capturar as letras e formar um único vetor
>>
>> #No exemplo abaixo, só serão formados dois "grupos"
>> #Porém pode acontecer de formar um, três ou quatro
>> #Não acontecerá de cinco ou mais
>>
>> #Usei o "ifelse" para isso, porém o retorno é um
>> #vetor de tamanho 1
>> library(ScottKnott)
>> data(RCBD)
>> sk1 <- with(RCBD,
>> SK(y ~ blk + tra,
>>data=dfm,
>>which='tra'))
>> sk1$out$Result   #aqui eu verifico a formação de dois grupos
>>
>> #O objeto que vai ser gerado no final, deveria ser igual a este
>> #aqui
>> grupos = c(sk1$out$Result$G1,
>>   sk1$out$Result$G2)
>> grupos[nzchar(grupos)]
>>
>> #Porém, isso não acontece quando eu uso o "ifelse"
>> rm(grupos)
>> grupos = ifelse(dim(sk1$out$Result)[2] == 5, c(sk1$out$Result$G1,
>>sk1$out$Result$G2,
>>sk1$out$Result$G3,
>>sk1$out$Result$G4),
>> ifelse(dim(sk1$out$Result)[2] == 4, c(sk1$out$Result$G1,
>>   sk1$out$Result$G2,
>>   sk1$out$Result$G3),
>>ifelse(dim(sk1$out$Result)[2] == 3,
>> c(sk1$out$Result$G1,
>>
>>  sk1$out$Result$G2),
>>   sk1$out$Result$G1)))
>> grupos
>>
>> #O que há de errado?
>> ___
>> R-br mailing list
>> R-br@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@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@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.


Re: [R-br] Uso do ifelse

2024-10-15 Por tôpico R-br
if (dim(sk1$out$Result)[2] == 5) {
  grupos <- c(sk1$out$Result$G1,
  sk1$out$Result$G2,
  sk1$out$Result$G3,
  sk1$out$Result$G4)
} else if (dim(sk1$out$Result)[2] == 4) {
  grupos <- c(sk1$out$Result$G1,
  sk1$out$Result$G2,
  sk1$out$Result$G3)
} else if (dim(sk1$out$Result)[2] == 3) {
  grupos <- c(sk1$out$Result$G1,
  sk1$out$Result$G2)
} else {
  grupos <- sk1$out$Result$G1
}

grupos

rm(grupos)

library(dplyr)

grupos <- case_when(
  dim(sk1$out$Result)[2] == 5 ~ list(c(sk1$out$Result$G1,
   sk1$out$Result$G2,
   sk1$out$Result$G3,
   sk1$out$Result$G4)),
  dim(sk1$out$Result)[2] == 4 ~ list(c(sk1$out$Result$G1,
   sk1$out$Result$G2,
   sk1$out$Result$G3)),
  dim(sk1$out$Result)[2] == 3 ~ list(c(sk1$out$Result$G1,
   sk1$out$Result$G2)),
  TRUE ~ list(sk1$out$Result$G1)
)

grupos <- unlist(grupos)

rm(grupos)


num_grupos <- min(dim(sk1$out$Result)[2], 10)

# Criar dinamicamente a lista de grupos
grupos <- unlist(lapply(1:num_grupos, function(i)
sk1$out$Result[[paste0('G', i)]]))

grupos

*Cid Edson Mendonça Póvoas*
*Agrônomo - **Data Analyst - Crop Protection & Seeds*
*Tel: +55 73 99151-9565*
*Lattes : *http://lattes.cnpq.br/2303498368142537
*LinkedIn :* http://br.linkedin.com/in/cidedson/
*Whatsapp :* https://wa.me/5573991519565


Em ter., 15 de out. de 2024 às 12:56, Maurício Lordêlo por (R-br) <
r-br@listas.c3sl.ufpr.br> escreveu:

> #Olá,
> #saudações a tod@s!!!
> #Vou precisar várias comparações múltiplas usando o
> #teste de Scott Knott
> #Quero no final, capturar as letras e formar um único vetor
>
> #No exemplo abaixo, só serão formados dois "grupos"
> #Porém pode acontecer de formar um, três ou quatro
> #Não acontecerá de cinco ou mais
>
> #Usei o "ifelse" para isso, porém o retorno é um
> #vetor de tamanho 1
> library(ScottKnott)
> data(RCBD)
> sk1 <- with(RCBD,
> SK(y ~ blk + tra,
>data=dfm,
>which='tra'))
> sk1$out$Result   #aqui eu verifico a formação de dois grupos
>
> #O objeto que vai ser gerado no final, deveria ser igual a este
> #aqui
> grupos = c(sk1$out$Result$G1,
>   sk1$out$Result$G2)
> grupos[nzchar(grupos)]
>
> #Porém, isso não acontece quando eu uso o "ifelse"
> rm(grupos)
> grupos = ifelse(dim(sk1$out$Result)[2] == 5, c(sk1$out$Result$G1,
>sk1$out$Result$G2,
>sk1$out$Result$G3,
>sk1$out$Result$G4),
> ifelse(dim(sk1$out$Result)[2] == 4, c(sk1$out$Result$G1,
>   sk1$out$Result$G2,
>   sk1$out$Result$G3),
>ifelse(dim(sk1$out$Result)[2] == 3, c(sk1$out$Result$G1,
>
>  sk1$out$Result$G2),
>   sk1$out$Result$G1)))
> grupos
>
> #O que há de errado?
> ___
> R-br mailing list
> R-br@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@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.


Re: [R-br] Uso do ifelse

2024-10-15 Por tôpico R-br
Vi que "ifelse" não retorna vetor.
Buscando alternativas para isso.




Em ter., 15 de out. de 2024 às 12:48, Maurício Lordêlo 
escreveu:

> #Olá,
> #saudações a tod@s!!!
> #Vou precisar várias comparações múltiplas usando o
> #teste de Scott Knott
> #Quero no final, capturar as letras e formar um único vetor
>
> #No exemplo abaixo, só serão formados dois "grupos"
> #Porém pode acontecer de formar um, três ou quatro
> #Não acontecerá de cinco ou mais
>
> #Usei o "ifelse" para isso, porém o retorno é um
> #vetor de tamanho 1
> library(ScottKnott)
> data(RCBD)
> sk1 <- with(RCBD,
> SK(y ~ blk + tra,
>data=dfm,
>which='tra'))
> sk1$out$Result   #aqui eu verifico a formação de dois grupos
>
> #O objeto que vai ser gerado no final, deveria ser igual a este
> #aqui
> grupos = c(sk1$out$Result$G1,
>   sk1$out$Result$G2)
> grupos[nzchar(grupos)]
>
> #Porém, isso não acontece quando eu uso o "ifelse"
> rm(grupos)
> grupos = ifelse(dim(sk1$out$Result)[2] == 5, c(sk1$out$Result$G1,
>sk1$out$Result$G2,
>sk1$out$Result$G3,
>sk1$out$Result$G4),
> ifelse(dim(sk1$out$Result)[2] == 4, c(sk1$out$Result$G1,
>   sk1$out$Result$G2,
>   sk1$out$Result$G3),
>ifelse(dim(sk1$out$Result)[2] == 3, c(sk1$out$Result$G1,
>
>  sk1$out$Result$G2),
>   sk1$out$Result$G1)))
> grupos
>
> #O que há de errado?
>
___
R-br mailing list
R-br@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.


Re: [R-br] Uso do ifelse

2011-12-16 Por tôpico Lucas Petri Damiani
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 

> 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 
> *Para:* "r-br@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 dadosclassi
> 1M  0.54  Alto
> 2M  0.56  Alto
> 3M  0.45  Medio
> 4M  0.59  Alto
> 5M  1.00 Muito alto
> 6M  0.71  Alto
> 7M  0.02  Baixo
> 8M  0.83 Muito alto
> 9M  0.22  Medio
> 10M  0.80 Muito alto
> 11F  0.52  Alto
> 12F  0.59  Alto
> 13F  0.47  Alto
> 14F  0.72 Muito alto
> 15F  0.08  Baixo
> 16F  0.71 Muito alto
> 17F  0.19  Medio
> 18F  0.32  Alto
> 19F  0.09  Baixo
> 20F  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 
> > Para: R-br Lista 
> > 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
> &

Re: [R-br] Uso do ifelse

2011-12-16 Por tôpico Edson Lira
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 
Para: "r-br@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 
> Para: R-br Lista 
> 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 =  Moderada

Re: [R-br] Uso do ifelse

2011-12-16 Por tôpico Paulo Justiniano

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
10M  0.80 Muito alto
11F  0.52   Alto
12F  0.59   Alto
13F  0.47   Alto
14F  0.72 Muito alto
15F  0.08  Baixo
16F  0.71 Muito alto
17F  0.19  Medio
18F  0.32   Alto
19F  0.09  Baixo
20F  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 
Para: R-br Lista 
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 d

Re: [R-br] Uso do ifelse

2011-12-15 Por tôpico Edson Lira
César estou aguardando o pesquisador para esclarecer exatamente essas 
"intersecções". Obrigado.

Edson Lira
Estatístico
Ma-Am

Em 15/12/2011, às 13:16, Cesar Rabak  escreveu:

> Em 15/12/2011 11:35, Edson Lira escreveu:
> >
> [snipped]
> 
> > 2. Foi medido a pressão sitólica e distólica de um grupo, tenho os
> > seguintes parâmetros ( que me foram passados):
> 
> Edson,
> 
> Vou seguir a máxima que ví em um cartaz na base da NASA em Ohio: "Fazendo 
> perguntas atingimos a Lua".
> 
> Creio que você precisa especificar melhor os limites de pressão e fazer de 
> uma maneira mais clara e sem ambigüidade:
> 
> Note:
> 
>> 
>> sistólica diastólica categoria
>> <130<85normal
>> 130-13985-89normal limítrofe
>> 140-15990-99estágio 1
>> 160-179100-109estágio 2
>> >180>110estágio 3
>> >=210>=120estágio 4
> 
> Como diferenciar este caso do "normal limítrofe"?
>> <140<90hipert sist isolada
> 
> Qual classificação deve-se fazer para casos onde somente uma das colunas é 
> verdadeira?
> 
> 
> -- 
> Cesar Rabak
> GNU/Linux User 52247.
> Get counted: http://counter.li.org/
> 
> ___
> R-br mailing list
> R-br@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@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.


Re: [R-br] Uso do ifelse

2011-12-15 Por tôpico Cesar Rabak

Em 15/12/2011 11:35, Edson Lira escreveu:
>
[snipped]

> 2. Foi medido a pressão sitólica e distólica de um grupo, tenho os
> seguintes parâmetros ( que me foram passados):

Edson,

Vou seguir a máxima que ví em um cartaz na base da NASA em Ohio: 
"Fazendo perguntas atingimos a Lua".


Creio que você precisa especificar melhor os limites de pressão e fazer 
de uma maneira mais clara e sem ambigüidade:


Note:



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>=120estágio 4


Como diferenciar este caso do "normal limítrofe"?

<140 <90  hipert sist isolada


Qual classificação deve-se fazer para casos onde somente uma das colunas 
é verdadeira?



--
Cesar Rabak
GNU/Linux User 52247.
Get counted: http://counter.li.org/

___
R-br mailing list
R-br@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.


Re: [R-br] Uso do ifelse

2011-12-15 Por tôpico Elias T. Krainski
Porque usar a mesma variavel em cada condição? 'av$perc_g<=0&av$perc_g<10' é o 
mesmo que 'av$perg_g<=0', por interseção de conjuntos. 

 
Elias T. Krainski


>
> De: Edson Lira 
>Para: "r-br@listas.c3sl.ufpr.br"  
>Enviadas: Quinta-feira, 15 de Dezembro de 2011 13:09
>Assunto: Re: [R-br] Uso do ifelse
> 
>
>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 
>Para: R-br Lista  
>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@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@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@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.

Re: [R-br] Uso do ifelse

2011-12-15 Por tôpico Edson Lira
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 
Para: R-br Lista  
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@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@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.

Re: [R-br] Uso do ifelse

2011-12-15 Por tôpico Paulo Justiniano

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@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.

Re: [R-br] Uso do ifelse para variáveis qualitativas

2011-11-30 Por tôpico Paulo Justiniano

Edson

NA é testado usando is.na(). Tente:

tip_doa$bairro_resid<-ifelse(is.na(tip_doa$BAIRRORESIDENCIA),
   tip_doa$BAIRRO_NAO_TABELADO,tip_doa$BAIRRORESIDENCIA)


On Wed, 30 Nov 2011, Edson Lira wrote:


Como faço para usar o ifelse em variáveis qualitativas. Na rotina abaixo estou 
tendo um problema.


tip_doa$bairro_resid<-ifelse(tip_doa$BAIRRORESIDENCIA=="NA",
tip_doa$BAIRRO_NAO_TABELADO,tip_doa$BAIRRORESIDENCIA)

Não indica erro, mas vejam table.

> table(tip_doa$bairro_resid)

   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   
16   17   18   19   20   21   22   23   24   25   26  
27   28   29   30   31   32   33
 372  557  179 1956  531  108  537  252   60  417   57  861    2  328  512 
3870  173    3  123  395  332 2046  995  141  240  580  306
1285   41  161  242 1072  261
  34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   
49   50   51   52   53   54   55   56   57   58   59  
60   61   62   63   64   65   66
 883  581  254  365  114   54  117  245  256  154  561  479  146    3    2  
173  681   92  246  828  140  403 1166  592  109  328 
183   12  271 1032  117  490   34
  67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   
82   83   84   85
 193  354  616  364  177  713  443 1204  366    1  309   35  513  216  117   
20    1  292  765
>

Se eu usar  NA ao invés de "NA" me dá a saída:
> table(tip_doa$bairro_resid)
character(0)

 [].s
Edson Lira
Estatístico
Manaus-Amazonas

___
R-br mailing list
R-br@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.

Re: [R-br] Uso do ifelse para variáveis qualitativas

2011-11-30 Por tôpico Gilbert Queiroz
Edson,
Consegui resolver.
Abs.




 De: Edson Lira 
Para: R-br Lista  
Enviadas: Quarta-feira, 30 de Novembro de 2011 14:04
Assunto: [R-br] Uso do ifelse para variáveis qualitativas
 

Como faço para usar o ifelse em variáveis qualitativas. Na rotina abaixo estou 
tendo um problema.


tip_doa$bairro_resid<-ifelse(tip_doa$BAIRRORESIDENCIA=="NA",
tip_doa$BAIRRO_NAO_TABELADO,tip_doa$BAIRRORESIDENCIA)

Não indica erro, mas vejam table.

> table(tip_doa$bairro_resid)

   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   
16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31  
 32   33 
 372  557  179 1956  531  108  537  252   60  417   57  861    2  328  512 
3870  173    3  123  395  332 2046  995  141  240  580  306 1285   41  161  242 
1072  261 
  34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   
49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   
65   66 
 883  581  254  365  114   54  117  245  256 
 154  561  479  146    3    2  173  681   92  246  828  140  403 1166  592  
109  328  183   12  271 1032  117  490   34 
  67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   
82   83   84   85 
 193  354  616  364  177  713  443 1204  366    1  309   35  513  216  117   
20    1  292  765 
> 


Se eu usar  NA ao invés de "NA" me dá a saída:
> table(tip_doa$bairro_resid)
character(0)


 [].s
Edson Lira
Estatístico
Manaus-Amazonas
___
R-br mailing list
R-br@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@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.

Re: [R-br] Uso do ifelse para variáveis qualitativas

2011-11-30 Por tôpico Jakson Alves de Aquino
2011/11/30 Edson Lira :
> Como faço para usar o ifelse em variáveis qualitativas. Na rotina abaixo
> estou tendo um problema.
>
>
> tip_doa$bairro_resid<-ifelse(tip_doa$BAIRRORESIDENCIA=="NA",

Comparação direta com NA não funciona. Use is.na()
___
R-br mailing list
R-br@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.


Re: [R-br] Uso do ifelse

2011-10-26 Por tôpico Benilton Carvalho
hmmm... sem um exemplo para ilustrar corremos o risco de nao entender
perfeitamente o q vc precisa... Todas as situacoes sao sempre "OU"?

com a sua descricao, o q acontece se:

v1 = 0; v2=1; v3=2, v4=2?

segundo sua primeira condicao, entao isso seria "alto produtor";
segundo a terceira, "baixo produtor"...
___
R-br mailing list
R-br@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.