
#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?

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 <mslordelo@gmail.com> 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?

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.

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.
participantes (2)
-
Cid Póvoas
-
Maurício Lordêlo