[R-br] Otimizar código - executar em lote
Marcelo Laia
marcelolaia em gmail.com
Sáb Abr 23 20:19:24 -03 2022
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
Mais detalhes sobre a lista de discussão R-br