[R-br] Otimizar código - executar em lote

Deisy Gysi deisygysi em gmail.com
Dom Abr 24 16:15:55 -03 2022


Olá Marcelo,

O genotipo seria o que varia entre os modelos?

Você tem um código minimamente reproduzivel para que a gente possa ajudar?

Sem os dados o que eu entendo...
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).

E obviamente, pode guardar os resultados dentro uma lista ou um df, como
preferir.

Abraços,
Deisy


On Sat, Apr 23, 2022, 7:19 PM Marcelo Laia por (R-br) <
r-br em listas.c3sl.ufpr.br> wrote:

> Olá
>
> Saberia me ajudar com uma otimização (execução em lote) do código
> abaixo?
>
> A análise é a seguinte (exemplo):
>
> 1 - pego os dados da coluna 25 e obtenho o lambda (boxcox);
> 2 - crio uma nova coluna com os dados corrigidos
> 3 - aplico um lm
> 4 - checo as pressuposições
> 5 - calculo e jogo em um objeto o boxplot (função ggboxplot)
> 6 - ploto o boxplot
> 7 - armazeno no hd o boxplot com o nome da coluna lida no passo 1 acima
> 8 - vou para a coluna seguinte, 26
>
> Estou fazendo isso com o código abaixo. Só que eu tenho 120 colunas.
>
> Por ser muito igual, já fiz confusão umas quatro ou cinco vezes com os
> valores, com os nomes dos arquivos ou com os nomes das colunas.
>
> Há como otimizar isso ou é melhor ir na "unha" mesmo?
>
> Obrigado!
>
> #### LINALOL ####
>
> colnames(dados01)[25] # retorna o nome da coluna
> boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE)
> boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE,
>        lam = seq(-1, 1, 1/10))
> boxcox(LINALOL ~ Genotipo * Tratamento, data=dados01, plotit = TRUE,
>        lam = seq(-0.7, -0.65, 1/1000))
> ## vou ajustando até achar o lambda mais próximo
> ## o valor aproximado de lambda é -0.655
>
> dados01$LINALOL.boxcox <- (dados01$LINALOL^(-0.655) - 1)/(-0.655)
>
> fit25 <- lm(LINALOL.boxcox ~ Genotipo * Tratamento, data=dados01)
> summary(fit25)
> anova(fit25)
>
> ggqqplot(residuals(fit25)) # Os pontos devem estar ao longo da linha
>                            # de referência. Senão, não é normal
>
> shapiro_test(residuals(fit25)) # se p-value for significativo,
>                                # não é normal
>
> ### teste de homocedacidade das variâncias
> ### se p < 0.05 (significativo), as variâncias não são homogêneas
>
> dados01 %>%
>     levene_test(LINALOL.boxcox ~ Genotipo * Tratamento)
>
> bxp <- ggboxplot(
>   dados01, x = "Genotipo", y = "LINALOL.boxcox",
>   color = "Tratamento", palette = "Set1", ylab = "LINALOL - boxcox",
>   )
> bxp
>
> pdf(file="LINALOL_boxcox.pdf")
> bxp
> dev.off()
>
> Obrigado
>
> --
> Marcelo
> _______________________________________________
> 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/20220424/0007b374/attachment.htm>


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