#Entradad de dados## anova.rep <- read.table("tratamentosdados.csv", header=T, sep=",", as.is=F) #Entrada de dados com o formato dataframe anova.rep #Observar que os dados sejam lidos corretamente ##Fazendo funcao de Anova de Medidas Repetidas## AnovaRep <- function(x) { if (class(x)!="data.frame") stop("\t", "Erro: O objeto x nao é de classe tipo data.frame!\n") #Aviso sobre a natureza dos dados #Exploratoria de dados if (any(is.na(x)==TRUE)) stop("\t", "Erro: os dados nao podem ter dados faltantes, ou a Anova vai ter vies!\n") #Aviso sobre dados faltantes ou ausentes str(anova.rep) #Observar que a estrutura do novo objeto com o data frame seja o proposto x11() #Abrendo janela par(mfrow=c(2,2)) #abrendo uma janela com duas filas e duas colunas qqnorm(anova.rep$Pre.test, main="Q-Q da Temperatura") #Avaliando a normalidade do Pre-test para o calculo da anova# qqline(anova.rep$Pre.test, col="red", lwd="2") #A linha para observar quanto dos dados estao ajustados# qqnorm(anova.rep$PostLPS1, main="Q-Q da Temperatura") #Avaliando a normalidade do PostLPS1 para o calculo da anova# qqline(anova.rep$PostLPS1, col="red", lwd="2") #A linha para observar quanto dos dados estao ajustados# qqnorm(anova.rep$PostLPS2, main="Q-Q da Temperatura") #Avaliando a normalidade do PostLPS2 para o calculo da anova# qqline(anova.rep$PostLPS2, col="red", lwd="2") #A linha para observar quanto dos dados estao ajustados# qqnorm(anova.rep$PostLPS3, main="Q-Q da Temperatura") #Avaliando a normalidade do PostLPS3 para o calculo da anova# qqline(anova.rep$PostLPS3, col="red", lwd="2") #A linha para observar quanto dos dados estao ajustados# #Grafico x11()#abrendo uma janela nova para o grafico com 1 fila e 1 coluna boxplot(anova.rep[,2:5], main="Efeito do Tratamento/Tempo", ylab= "Individuo Temperatura", xlab="Tratamentos") #fazendo o grafico da anova com cada uns dos tratamentos cat("Lembre-se fazer uma transformarcao previa aos dados se não apresentam normalidade!\n") #Se os dados nao cumplem com os presupostos de Normalidade# #calculando o tamanho da amostra total Ti <- apply(anova.rep[,2:5], 1, sum) #sumando os dados pelos individuos Ti2K <- ((anova.rep$Ti^2)/4) # N <- 40 #numero de medidas feitas para a otra dos dados n <- 10 #numero de medidas feitas em cada um dos tratamentos Tk.tempertrat <- apply(anova.rep[,2:5], 2, sum) #suma dos dados por cada tratamento mean.tempertrat <- apply(anova.rep[,2:5], 2, mean) #media dos dados por cada tratamento TK2n <- (Tk.tempertrat)^2/10 #duplicacao dos dados sumados por cada tratamento e divididos no número de observacoes feitas por tratamento SumTK2n <- sum(TK2n) #sumatoria da operacao no objeto anterior T2N <- (sum(Tk.tempertrat)^2)/40 #sumatoria dos dados sumados e duplicados por tratamento e dividido no número de observacoes totales feitas sumtrat2.pre.test <- sum(anova.rep$Pre.test^2) #suma dos dados quadrados do primer tratamento sumtrat2.postLPS1 <- sum(anova.rep$PostLPS1^2) #suma dos dados duplicados do segundo tratamento sumtrat2.postLPS2 <- sum(anova.rep$PostLPS2^2) #suma dos dados duplicados do terceiro tratamento sumtrat2.postLPS3 <- sum(anova.rep$PostLPS3^2) #suma dos dados duplicados do quarto tratamento Sum.trat2 <- sum(sumtrat2.pre.test,sumtrat2.postLPS1,sumtrat2.postLPS2,sumtrat2.postLPS3) #suma de todos os dados Sum.Ti2K <- sum(Ti2K) #sumatoria dos dados duplicados e dividos no quatro repeticoes feitas #Suma dos quadrados ss.total <- Sum.trat2 - T2N #diferenca entre suma de todos os dados e desvio padrao de todos os dados ss.entre <- Sum.Ti2K - T2N #diferenca da dados por individuos e dados totais ss.intra <- SumTK2n - T2N #diferenca dos dados por tratamento e os dados totais ss.ressidual <- ss.total - ss.entre - ss.intra #diferenca dos dados totais, intra e entre grupos #calculando os graus de liberdade da Suma dos quadrados gl.total <- 40-1 #numero de observacoes feitas menos 1 gl.entre <- 10-1 #numero de observacoes feitas por tratamento menos 1 gl.intra <- 4-1 #numero de repeticoes feitas menos 1 gl.ressidual <- (40-1)*(10-1) #multiplicacao dos graus de liberdade total e graus de liberdade entre grupos #Fazendo a tabla de Resumo da Anova Fonte.Varianca <- c("entre-grupos", "intra-grupos", "grupo-ressidual", "Total") #fazendo o "head" da tabela resumo" gl <- c(gl.entre, gl.intra, gl.ressidual, gl.total) #fila dos graus de liberdades para cada grupo SS <- c(ss.entre, ss.intra, ss.ressidual, ss.total) #fila dos SS de cada grupo MS <- c((ss.entre/gl.entre),(ss.intra/gl.intra), (ss.ressidual/gl.ressidual), "NA") #fila dos cocientes das sumas dos quadrados de cada grupo(varianca) F.ratio <- c(((ss.intra/gl.intra)/(ss.ressidual/gl.ressidual)), "NA", "NA", "NA") #calculando o F-ratio a partir da suma dos quadrados intra e ressidual Anovarep.resulta <- data.frame(Fonte.Varianca, gl, SS, MS, F.ratio) #fazendo o objeto da tabla de resumo da anova de medidas repetidas return(Anovarep.resulta) #retornando a tabla resumo } AnovaRep(anova.rep)