<div dir="auto"><div>Olá Marcelo,<div dir="auto"><br></div><div dir="auto">O genotipo seria o que varia entre os modelos?</div><div dir="auto"><br></div><div dir="auto">Você tem um código minimamente reproduzivel para que a gente possa ajudar?</div><div dir="auto"><br></div><div dir="auto">Sem os dados o que eu entendo... </div><div dir="auto">Inicialmente, você pode rodar isso dentro de um for (com alguns ifs você define se os resíduos são normais, faz o plot, e etc).</div><div dir="auto"><br></div><div dir="auto">E obviamente, pode guardar os resultados dentro uma lista ou um df, como preferir. </div><div dir="auto"><br></div><div dir="auto">Abraços,</div><div dir="auto">Deisy </div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Apr 23, 2022, 7:19 PM Marcelo Laia por (R-br) <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Olá<br>
<br>
Saberia me ajudar com uma otimização (execução em lote) do código<br>
abaixo?<br>
<br>
A análise é a seguinte (exemplo):<br>
<br>
1 - pego os dados da coluna 25 e obtenho o lambda (boxcox);<br>
2 - crio uma nova coluna com os dados corrigidos<br>
3 - aplico um lm<br>
4 - checo as pressuposições<br>
5 - calculo e jogo em um objeto o boxplot (função ggboxplot)<br>
6 - ploto o boxplot<br>
7 - armazeno no hd o boxplot com o nome da coluna lida no passo 1 acima<br>
8 - vou para a coluna seguinte, 26<br>
<br>
Estou fazendo isso com o código abaixo. Só que eu tenho 120 colunas.<br>
<br>
Por ser muito igual, já fiz confusão umas quatro ou cinco vezes com os<br>
valores, com os nomes dos arquivos ou com os nomes das colunas.<br>
<br>
Há como otimizar isso ou é melhor ir na "unha" mesmo?<br>
<br>
Obrigado!<br>
<br>
#### LINALOL ####<br>
<br>
colnames(dados01)[25] # retorna o nome da coluna<br>
boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE)<br>
boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE,<br>
       lam = seq(-1, 1, 1/10))<br>
boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE,<br>
       lam = seq(-0.7, -0.65, 1/1000))<br>
## vou ajustando até achar o lambda mais próximo<br>
## o valor aproximado de lambda é -0.655<br>
<br>
dados01$LINALOL.boxcox <- (dados01$LINALOL^(-0.655) - 1)/(-0.655)<br>
<br>
fit25 <- lm(LINALOL.boxcox ~ Genotipo * Tratamento, data=dados01)<br>
summary(fit25)<br>
anova(fit25)<br>
<br>
ggqqplot(residuals(fit25)) # Os pontos devem estar ao longo da linha<br>
                           # de referência. Senão, não é normal<br>
<br>
shapiro_test(residuals(fit25)) # se p-value for significativo, <br>
                               # não é normal<br>
<br>
### teste de homocedacidade das variâncias<br>
### se p < 0.05 (significativo), as variâncias não são homogêneas<br>
<br>
dados01 %>%<br>
    levene_test(LINALOL.boxcox ~ Genotipo * Tratamento)<br>
<br>
bxp <- ggboxplot(<br>
  dados01, x = "Genotipo", y = "LINALOL.boxcox",<br>
  color = "Tratamento", palette = "Set1", ylab = "LINALOL - boxcox",<br>
  )<br>
bxp<br>
<br>
pdf(file="LINALOL_boxcox.pdf")<br>
bxp<br>
dev.off()<br>
<br>
Obrigado<br>
<br>
-- <br>
Marcelo<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank" rel="noreferrer">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</blockquote></div></div></div>