1 Packages

library(car)
library(emmeans)
library(dplyr)
library(tidyr)
library(tidyverse)
library(tibble)
library(multcompView)
library(multcomp)
library(stats)
library(patchwork)

#PCA
library(FactoMineR)
library(factoextra)
library(missMDA)
library(ggplot2)


2 DATABASE

dados=read.csv("C:/Users/Samsung/OneDrive/Documentos/1 - PósDoc/2 - FAPESP - Silvipastoril/Responsabilidades/Dados PG disciplina/data.csv")
dados$Inoculo=as.factor(dados$Inoculo)
dados$Trat=as.factor(dados$Trat)
str(dados)
'data.frame':   294 obs. of  8 variables:
 $ Inoculo: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
 $ Trat   : Factor w/ 7 levels "Amostra 01","Amostra 02",..: 1 1 1 2 2 2 3 3 3 4 ...
 $ Rep    : int  1 2 3 1 2 3 1 2 3 1 ...
 $ Tempo  : int  2 2 2 2 2 2 2 2 2 2 ...
 $ GP     : num  11 11.9 12.3 15.1 16.1 ...
 $ CH4.DMO: num  0.393 0.407 0.416 0.271 0.271 ...
 $ DMO_48 : num  292 296 297 787 782 ...
 $ N_NH3  : num  59.2 54.7 53.5 20.9 59 ...
View(dados)

dados <- dados %>%
  arrange(Inoculo, Trat, Rep, Tempo) %>%
  group_by(Inoculo, Trat, Rep) %>%
  mutate(GP = cumsum(GP)) %>%
  ungroup()
dados


3 Plot PG

#Plot
gp=ggplot(dados, aes(x=Tempo, y=GP, shape=Trat))+
    geom_line(stat="summary",fun="mean")+
  geom_point(aes(shape = Trat), size = 3, stat="summary",fun="mean")+
  scale_shape_manual(values = c(0,1,2,15,16,17,21), name= "Treatments",labels = c("Pasture","Forage palm","Blackberry biomass","TMR diet 1","TMR diet 2","Fly meal","S. tubulosa fruit"))+
  scale_y_continuous(name=expression(paste("Gas production (mL ",g^-1,"DM)")), breaks=seq(0,260,10))+
  scale_x_continuous(name="Fermentation time (h)", breaks=seq(0,48,4))
gp

gp=gp+theme(axis.line = element_line(colour = "black", size = 0.7, linetype = "solid"),
 panel.background = element_rect(fill = "transparent"),
 legend.background = element_rect(fill = "transparent", size=0.5, linetype="solid",colour ="black"),legend.position = c(0.15, 0.80),legend.key.size = unit(0.42, 'cm'))
gp



4 Plot DMO

DMO.summary <- dados %>%
  group_by(Trat) %>%
  summarise(
    sd = sd(DMO_48, na.rm = TRUE),
    DMO = mean(DMO_48,na.rm = TRUE))
DMO.summary

#Anova e Tukey
mod.dmo = lmer(DMO_48 ~ Trat + (1|Inoculo),data =dados)
boundary (singular) fit: see help('isSingular')
print(anova(mod.dmo))
Type III Analysis of Variance Table with Satterthwaite's method
     Sum Sq Mean Sq NumDF DenDF F value    Pr(>F)    
Trat 944435  157406     6    35  76.977 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
medias = emmeans(mod.dmo, ~ Trat)
print(summary(medias))
 Trat       emmean   SE   df lower.CL upper.CL
 Amostra 01    322 18.5 23.8      284      360
 Amostra 02    791 18.5 23.8      753      829
 Amostra 03    719 18.5 23.8      681      757
 Amostra 04    674 18.5 23.8      636      712
 Amostra 05    502 18.5 23.8      464      540
 Amostra 06    558 18.5 23.8      520      597
 Amostra 07    717 18.5 23.8      679      755

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 
tukey_glht = glht(mod.dmo, linfct = mcp(Trat = "Tukey"))
print(summary(tukey_glht))

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = DMO_48 ~ Trat + (1 | Inoculo), data = dados)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)    
Amostra 02 - Amostra 01 == 0  468.837     26.108  17.958   <0.001 ***
Amostra 03 - Amostra 01 == 0  397.158     26.108  15.212   <0.001 ***
Amostra 04 - Amostra 01 == 0  351.727     26.108  13.472   <0.001 ***
Amostra 05 - Amostra 01 == 0  179.617     26.108   6.880   <0.001 ***
Amostra 06 - Amostra 01 == 0  236.296     26.108   9.051   <0.001 ***
Amostra 07 - Amostra 01 == 0  394.700     26.108  15.118   <0.001 ***
Amostra 03 - Amostra 02 == 0  -71.679     26.108  -2.746   0.0872 .  
Amostra 04 - Amostra 02 == 0 -117.110     26.108  -4.486   <0.001 ***
Amostra 05 - Amostra 02 == 0 -289.220     26.108 -11.078   <0.001 ***
Amostra 06 - Amostra 02 == 0 -232.541     26.108  -8.907   <0.001 ***
Amostra 07 - Amostra 02 == 0  -74.137     26.108  -2.840   0.0677 .  
Amostra 04 - Amostra 03 == 0  -45.431     26.108  -1.740   0.5888    
Amostra 05 - Amostra 03 == 0 -217.541     26.108  -8.332   <0.001 ***
Amostra 06 - Amostra 03 == 0 -160.862     26.108  -6.161   <0.001 ***
Amostra 07 - Amostra 03 == 0   -2.458     26.108  -0.094   1.0000    
Amostra 05 - Amostra 04 == 0 -172.110     26.108  -6.592   <0.001 ***
Amostra 06 - Amostra 04 == 0 -115.431     26.108  -4.421   <0.001 ***
Amostra 07 - Amostra 04 == 0   42.973     26.108   1.646   0.6523    
Amostra 06 - Amostra 05 == 0   56.679     26.108   2.171   0.3115    
Amostra 07 - Amostra 05 == 0  215.083     26.108   8.238   <0.001 ***
Amostra 07 - Amostra 06 == 0  158.404     26.108   6.067   <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
letras = cld(tukey_glht)
print(letras)
Amostra 01 Amostra 02 Amostra 03 Amostra 04 Amostra 05 Amostra 06 Amostra 07 
       "a"        "b"       "bc"        "c"        "d"        "d"       "bc" 
#Plot
gp2=ggplot(DMO.summary, aes(x=Trat, y=DMO))+
  geom_col(aes(fill = Trat), position = "dodge") + 
  geom_errorbar(aes(ymin=DMO-sd, ymax=DMO+sd), width=.2, position=position_dodge(.9))+
  scale_fill_manual(values = c("grey40", "blue3", "brown2","chocolate4","cyan", "yellow3","green4"),name= "Treatments",labels = c("Pasture","Forage palm","Blackberry biomass","TMR diet 1","TMR diet 2","Fly meal","S. tubulosa fruit"))+
  scale_y_continuous(name=expression(paste("IVDOM (g k",g^-1,")")), breaks = seq(0,950,50))+
  scale_x_discrete(name="Treatments",labels = c("Amostra 01" = "Pasture","Amostra 02" = "Forage palm","Amostra 03" = "Blackberry biomass","Amostra 04" = "TMR diet 1","Amostra 05" = "TMR diet 2","Amostra 06" = "Fly meal","Amostra 07" = "S. tubulosa fruit"))+coord_cartesian(ylim = c(50,950))
gp2

gp2=gp2+theme(axis.line = element_line(colour = "black", size = 0.7, linetype = "solid"),
  panel.background = element_rect(fill = "transparent"),
  legend.position = "none",
  axis.text.x = element_text(colour = "black",angle = 15, hjust = 1,size = 9))
gp2



5 Combinar graficos

# Combinar os gráficos
combinado <- (gp / gp2) +
  plot_annotation(tag_levels = "A") & 
  theme(plot.tag = element_text(size = 16, face = "bold"))

# Visualizar
combinado
ggsave("grafico_combinado.png", combinado, width = 7, height = 8, dpi = 300)



6 Anova e tukey

names(dados) 
[1] "Inoculo" "Trat"    "Rep"     "Tempo"   "GP"      "CH4.DMO" "DMO_48"  "N_NH3"  
str(dados)
tibble [294 × 8] (S3: tbl_df/tbl/data.frame)
 $ Inoculo: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
 $ Trat   : Factor w/ 7 levels "Amostra 01","Amostra 02",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Rep    : int [1:294] 1 1 1 1 1 1 1 2 2 2 ...
 $ Tempo  : int [1:294] 2 4 8 12 24 36 48 2 4 8 ...
 $ GP     : num [1:294] 11 20.4 35.6 44.2 71.5 ...
 $ CH4.DMO: num [1:294] 0.393 NA NA NA NA ...
 $ DMO_48 : num [1:294] 292 NA NA NA NA ...
 $ N_NH3  : num [1:294] 59.2 32.1 NA NA NA ...
variables <- c("GP","CH4.DMO","DMO_48","N_NH3")
variables
[1] "GP"      "CH4.DMO" "DMO_48"  "N_NH3"  
# Testes de normalidade e homocedasticidade (com lm para simplificação)
testes <- lapply(variables, function(var) {
  formula <- as.formula(paste(var, "~ Trat + (1|Inoculo)"))
  modelo <- lmer(formula, data = dados)  
  res <- residuals(modelo)
  dados_modelo <- model.frame(modelo) 
  shapiro_p <- shapiro.test(res)$p.value
  levene_p <- leveneTest(res ~ Trat, data = dados_modelo)[1, "Pr(>F)"]
  data.frame(Variavel = var,
             p_Shapiro = round(shapiro_p, 4),
             p_Levene = round(levene_p, 4))
})
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
resultado_testes <- do.call(rbind, testes)
print(resultado_testes)

# Análise do modelo misto (quadro latino) e comparação de médias
for (var in variables) {
  cat("\n\n########################### Variável:", var, " ##########################\n")
  formula_mista <- as.formula(paste(var, "~ Trat + (1|Inoculo)"))
  mod_misto <- lmer(formula_mista, data = dados)
  # ANOVA
  cat("ANOVA (modelo misto):\n")
  print(anova(mod_misto))
  # Médias
  cat("\nMédias (emmeans):\n")
  medias <- emmeans(mod_misto, ~Trat)
  print(summary(medias))
  # Comparações múltiplas 
  cat("\nTukey (glht):\n")
  tukey_glht <- glht(mod_misto, linfct = mcp(Trat = "Tukey"))
  print(summary(tukey_glht))
  # Letras compactas
  cat("\nLetras do Tukey (glht):\n")
  letras <- cld(tukey_glht)
  print(letras)
}


########################### Variável: GP  ##########################
ANOVA (modelo misto):
Type III Analysis of Variance Table with Satterthwaite's method
     Sum Sq Mean Sq NumDF DenDF F value   Pr(>F)    
Trat 103028   17171     6   286  5.1384 4.93e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Médias (emmeans):
 Trat       emmean   SE   df lower.CL upper.CL
 Amostra 01   52.7 13.3 2.63     6.77     98.7
 Amostra 02  105.6 13.3 2.63    59.69    151.6
 Amostra 03  108.5 13.3 2.63    62.53    154.4
 Amostra 04   95.6 13.3 2.63    49.63    141.5
 Amostra 05   74.5 13.3 2.63    28.55    120.5
 Amostra 06   88.7 13.3 2.63    42.73    134.6
 Amostra 07  104.3 13.3 2.63    58.33    150.2

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

Tukey (glht):

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = formula_mista, data = dados)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)    
Amostra 02 - Amostra 01 == 0   52.923     12.615   4.195   <0.001 ***
Amostra 03 - Amostra 01 == 0   55.763     12.615   4.420   <0.001 ***
Amostra 04 - Amostra 01 == 0   42.862     12.615   3.398   0.0121 *  
Amostra 05 - Amostra 01 == 0   21.787     12.615   1.727   0.5977    
Amostra 06 - Amostra 01 == 0   35.961     12.615   2.851   0.0658 .  
Amostra 07 - Amostra 01 == 0   51.562     12.615   4.087   <0.001 ***
Amostra 03 - Amostra 02 == 0    2.840     12.615   0.225   1.0000    
Amostra 04 - Amostra 02 == 0  -10.061     12.615  -0.798   0.9853    
Amostra 05 - Amostra 02 == 0  -31.136     12.615  -2.468   0.1713    
Amostra 06 - Amostra 02 == 0  -16.962     12.615  -1.345   0.8307    
Amostra 07 - Amostra 02 == 0   -1.361     12.615  -0.108   1.0000    
Amostra 04 - Amostra 03 == 0  -12.901     12.615  -1.023   0.9490    
Amostra 05 - Amostra 03 == 0  -33.976     12.615  -2.693   0.0998 .  
Amostra 06 - Amostra 03 == 0  -19.802     12.615  -1.570   0.7017    
Amostra 07 - Amostra 03 == 0   -4.201     12.615  -0.333   0.9999    
Amostra 05 - Amostra 04 == 0  -21.075     12.615  -1.671   0.6358    
Amostra 06 - Amostra 04 == 0   -6.901     12.615  -0.547   0.9981    
Amostra 07 - Amostra 04 == 0    8.700     12.615   0.690   0.9932    
Amostra 06 - Amostra 05 == 0   14.174     12.615   1.124   0.9210    
Amostra 07 - Amostra 05 == 0   29.775     12.615   2.360   0.2160    
Amostra 07 - Amostra 06 == 0   15.601     12.615   1.237   0.8798    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)


Letras do Tukey (glht):
Amostra 01 Amostra 02 Amostra 03 Amostra 04 Amostra 05 Amostra 06 Amostra 07 
       "a"        "b"        "b"        "b"       "ab"       "ab"        "b" 


########################### Variável: CH4.DMO  ##########################
ANOVA (modelo misto):
Type III Analysis of Variance Table with Satterthwaite's method
       Sum Sq   Mean Sq NumDF DenDF F value    Pr(>F)    
Trat 0.036715 0.0061192     6    34  10.933 9.119e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Médias (emmeans):
 Trat       emmean     SE   df lower.CL upper.CL
 Amostra 01  0.342 0.0342 1.15   0.0211    0.662
 Amostra 02  0.257 0.0342 1.15  -0.0630    0.578
 Amostra 03  0.290 0.0342 1.15  -0.0307    0.610
 Amostra 04  0.286 0.0342 1.15  -0.0344    0.606
 Amostra 05  0.260 0.0342 1.15  -0.0604    0.580
 Amostra 06  0.301 0.0342 1.15  -0.0193    0.622
 Amostra 07  0.249 0.0342 1.15  -0.0710    0.570

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

Tukey (glht):

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = formula_mista, data = dados)

Linear Hypotheses:
                              Estimate Std. Error z value Pr(>|z|)    
Amostra 02 - Amostra 01 == 0 -0.084150   0.013659  -6.161  < 0.001 ***
Amostra 03 - Amostra 01 == 0 -0.051833   0.013659  -3.795  0.00289 ** 
Amostra 04 - Amostra 01 == 0 -0.055550   0.013659  -4.067  0.00102 ** 
Amostra 05 - Amostra 01 == 0 -0.081567   0.013659  -5.972  < 0.001 ***
Amostra 06 - Amostra 01 == 0 -0.040450   0.013659  -2.961  0.04822 *  
Amostra 07 - Amostra 01 == 0 -0.092117   0.013659  -6.744  < 0.001 ***
Amostra 03 - Amostra 02 == 0  0.032317   0.013659   2.366  0.21328    
Amostra 04 - Amostra 02 == 0  0.028600   0.013659   2.094  0.35600    
Amostra 05 - Amostra 02 == 0  0.002583   0.013659   0.189  1.00000    
Amostra 06 - Amostra 02 == 0  0.043700   0.013659   3.199  0.02354 *  
Amostra 07 - Amostra 02 == 0 -0.007967   0.013659  -0.583  0.99729    
Amostra 04 - Amostra 03 == 0 -0.003717   0.013659  -0.272  0.99997    
Amostra 05 - Amostra 03 == 0 -0.029733   0.013659  -2.177  0.30808    
Amostra 06 - Amostra 03 == 0  0.011383   0.013659   0.833  0.98151    
Amostra 07 - Amostra 03 == 0 -0.040283   0.013659  -2.949  0.04982 *  
Amostra 05 - Amostra 04 == 0 -0.026017   0.013659  -1.905  0.47698    
Amostra 06 - Amostra 04 == 0  0.015100   0.013659   1.106  0.92668    
Amostra 07 - Amostra 04 == 0 -0.036567   0.013659  -2.677  0.10429    
Amostra 06 - Amostra 05 == 0  0.041117   0.013659   3.010  0.04157 *  
Amostra 07 - Amostra 05 == 0 -0.010550   0.013659  -0.772  0.98756    
Amostra 07 - Amostra 06 == 0 -0.051667   0.013659  -3.783  0.00300 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)


Letras do Tukey (glht):
Amostra 01 Amostra 02 Amostra 03 Amostra 04 Amostra 05 Amostra 06 Amostra 07 
       "a"       "bc"       "bd"       "cd"       "bc"        "d"        "c" 


########################### Variável: DMO_48  ##########################
boundary (singular) fit: see help('isSingular')
ANOVA (modelo misto):
Type III Analysis of Variance Table with Satterthwaite's method
     Sum Sq Mean Sq NumDF DenDF F value    Pr(>F)    
Trat 944435  157406     6    35  76.977 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Médias (emmeans):
 Trat       emmean   SE   df lower.CL upper.CL
 Amostra 01    322 18.5 23.8      284      360
 Amostra 02    791 18.5 23.8      753      829
 Amostra 03    719 18.5 23.8      681      757
 Amostra 04    674 18.5 23.8      636      712
 Amostra 05    502 18.5 23.8      464      540
 Amostra 06    558 18.5 23.8      520      597
 Amostra 07    717 18.5 23.8      679      755

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

Tukey (glht):
Warning: Completion with error > abseps

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = formula_mista, data = dados)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)    
Amostra 02 - Amostra 01 == 0  468.837     26.108  17.958   <0.001 ***
Amostra 03 - Amostra 01 == 0  397.158     26.108  15.212   <0.001 ***
Amostra 04 - Amostra 01 == 0  351.727     26.108  13.472   <0.001 ***
Amostra 05 - Amostra 01 == 0  179.617     26.108   6.880   <0.001 ***
Amostra 06 - Amostra 01 == 0  236.296     26.108   9.051   <0.001 ***
Amostra 07 - Amostra 01 == 0  394.700     26.108  15.118   <0.001 ***
Amostra 03 - Amostra 02 == 0  -71.679     26.108  -2.746   0.0871 .  
Amostra 04 - Amostra 02 == 0 -117.110     26.108  -4.486   <0.001 ***
Amostra 05 - Amostra 02 == 0 -289.220     26.108 -11.078   <0.001 ***
Amostra 06 - Amostra 02 == 0 -232.541     26.108  -8.907   <0.001 ***
Amostra 07 - Amostra 02 == 0  -74.137     26.108  -2.840   0.0682 .  
Amostra 04 - Amostra 03 == 0  -45.431     26.108  -1.740   0.5888    
Amostra 05 - Amostra 03 == 0 -217.541     26.108  -8.332   <0.001 ***
Amostra 06 - Amostra 03 == 0 -160.862     26.108  -6.161   <0.001 ***
Amostra 07 - Amostra 03 == 0   -2.458     26.108  -0.094   1.0000    
Amostra 05 - Amostra 04 == 0 -172.110     26.108  -6.592   <0.001 ***
Amostra 06 - Amostra 04 == 0 -115.431     26.108  -4.421   <0.001 ***
Amostra 07 - Amostra 04 == 0   42.973     26.108   1.646   0.6522    
Amostra 06 - Amostra 05 == 0   56.679     26.108   2.171   0.3113    
Amostra 07 - Amostra 05 == 0  215.083     26.108   8.238   <0.001 ***
Amostra 07 - Amostra 06 == 0  158.404     26.108   6.067   <0.001 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)


Letras do Tukey (glht):
Amostra 01 Amostra 02 Amostra 03 Amostra 04 Amostra 05 Amostra 06 Amostra 07 
       "a"        "b"       "bc"        "c"        "d"        "d"       "bc" 


########################### Variável: N_NH3  ##########################
boundary (singular) fit: see help('isSingular')
ANOVA (modelo misto):
Type III Analysis of Variance Table with Satterthwaite's method
     Sum Sq Mean Sq NumDF DenDF F value  Pr(>F)  
Trat 2523.2  420.53     6    55   2.138 0.06339 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Médias (emmeans):
 Trat       emmean   SE   df lower.CL upper.CL
 Amostra 01   42.6 4.84 22.3     32.5     52.6
 Amostra 02   36.4 4.84 22.3     26.3     46.4
 Amostra 03   47.1 4.84 22.3     37.1     57.1
 Amostra 04   44.6 4.84 22.3     34.5     54.6
 Amostra 05   58.8 4.84 22.3     48.7     68.8
 Amostra 06   47.9 4.84 22.3     37.8     57.9
 Amostra 07   43.3 5.05 27.2     33.0     53.7

Degrees-of-freedom method: kenward-roger 
Confidence level used: 0.95 

Tukey (glht):

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = formula_mista, data = dados)

Linear Hypotheses:
                             Estimate Std. Error z value Pr(>|z|)  
Amostra 02 - Amostra 01 == 0  -6.2050     6.6114  -0.939   0.9663  
Amostra 03 - Amostra 01 == 0   4.5144     6.6114   0.683   0.9936  
Amostra 04 - Amostra 01 == 0   1.9928     6.6114   0.301   0.9999  
Amostra 05 - Amostra 01 == 0  16.1925     6.6114   2.449   0.1784  
Amostra 06 - Amostra 01 == 0   5.3078     6.6114   0.803   0.9848  
Amostra 07 - Amostra 01 == 0   0.7691     6.8148   0.113   1.0000  
Amostra 03 - Amostra 02 == 0  10.7194     6.6114   1.621   0.6682  
Amostra 04 - Amostra 02 == 0   8.1978     6.6114   1.240   0.8785  
Amostra 05 - Amostra 02 == 0  22.3975     6.6114   3.388   0.0126 *
Amostra 06 - Amostra 02 == 0  11.5128     6.6114   1.741   0.5878  
Amostra 07 - Amostra 02 == 0   6.9741     6.8148   1.023   0.9488  
Amostra 04 - Amostra 03 == 0  -2.5217     6.6114  -0.381   0.9998  
Amostra 05 - Amostra 03 == 0  11.6781     6.6114   1.766   0.5710  
Amostra 06 - Amostra 03 == 0   0.7933     6.6114   0.120   1.0000  
Amostra 07 - Amostra 03 == 0  -3.7453     6.8148  -0.550   0.9981  
Amostra 05 - Amostra 04 == 0  14.1997     6.6114   2.148   0.3246  
Amostra 06 - Amostra 04 == 0   3.3150     6.6114   0.501   0.9988  
Amostra 07 - Amostra 04 == 0  -1.2236     6.8148  -0.180   1.0000  
Amostra 06 - Amostra 05 == 0 -10.8847     6.6114  -1.646   0.6518  
Amostra 07 - Amostra 05 == 0 -15.4234     6.8148  -2.263   0.2621  
Amostra 07 - Amostra 06 == 0  -4.5386     6.8148  -0.666   0.9944  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)


Letras do Tukey (glht):
Amostra 01 Amostra 02 Amostra 03 Amostra 04 Amostra 05 Amostra 06 Amostra 07 
      "ab"        "a"       "ab"       "ab"        "b"       "ab"       "ab" 
LS0tDQp0aXRsZTogIkVzdGF0aXN0aWNhIGRvcyBkYWRvcyBkZSBhdWxhIHByYXRpY2EgZGEgZGlzY2lwbGluYSBDRU41NzQwIg0KYXV0aG9yOiAiVmFnbmVyIE92YW5pIg0KZGF0ZTogIjAzLzA2LzIwMjUiDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2RlcHRoOiAyDQogICAgdGhlbWU6IHVuaXRlZA0KLS0tDQoNCioqKg0KKioqDQoNCiMgKioxIFBhY2thZ2VzKioNCg0KYGBge3J9DQpsaWJyYXJ5KGNhcikNCmxpYnJhcnkoZW1tZWFucykNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHRpYmJsZSkNCmxpYnJhcnkobXVsdGNvbXBWaWV3KQ0KbGlicmFyeShtdWx0Y29tcCkNCmxpYnJhcnkoc3RhdHMpDQpsaWJyYXJ5KHBhdGNod29yaykNCg0KI1BDQQ0KbGlicmFyeShGYWN0b01pbmVSKQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KbGlicmFyeShtaXNzTURBKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KYGBgDQoNCioqKg0KKioqDQoNCiMgKioyIERBVEFCQVNFKioNCg0KYGBge3J9DQpkYWRvcz1yZWFkLmNzdigiQzovVXNlcnMvU2Ftc3VuZy9PbmVEcml2ZS9Eb2N1bWVudG9zLzEgLSBQw7NzRG9jLzIgLSBGQVBFU1AgLSBTaWx2aXBhc3RvcmlsL1Jlc3BvbnNhYmlsaWRhZGVzL0RhZG9zIFBHIGRpc2NpcGxpbmEvZGF0YS5jc3YiKQ0KZGFkb3MkSW5vY3Vsbz1hcy5mYWN0b3IoZGFkb3MkSW5vY3VsbykNCmRhZG9zJFRyYXQ9YXMuZmFjdG9yKGRhZG9zJFRyYXQpDQpzdHIoZGFkb3MpDQpWaWV3KGRhZG9zKQ0KDQpkYWRvcyA8LSBkYWRvcyAlPiUNCiAgYXJyYW5nZShJbm9jdWxvLCBUcmF0LCBSZXAsIFRlbXBvKSAlPiUNCiAgZ3JvdXBfYnkoSW5vY3VsbywgVHJhdCwgUmVwKSAlPiUNCiAgbXV0YXRlKEdQID0gY3Vtc3VtKEdQKSkgJT4lDQogIHVuZ3JvdXAoKQ0KZGFkb3MNCmBgYA0KDQoqKioNCioqKg0KDQojICoqMyBQbG90IFBHKioNCg0KYGBge3J9DQojUGxvdA0KZ3A9Z2dwbG90KGRhZG9zLCBhZXMoeD1UZW1wbywgeT1HUCwgc2hhcGU9VHJhdCkpKw0KICAgIGdlb21fbGluZShzdGF0PSJzdW1tYXJ5IixmdW49Im1lYW4iKSsNCiAgZ2VvbV9wb2ludChhZXMoc2hhcGUgPSBUcmF0KSwgc2l6ZSA9IDMsIHN0YXQ9InN1bW1hcnkiLGZ1bj0ibWVhbiIpKw0KICBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gYygwLDEsMiwxNSwxNiwxNywyMSksIG5hbWU9ICJUcmVhdG1lbnRzIixsYWJlbHMgPSBjKCJQYXN0dXJlIiwiRm9yYWdlIHBhbG0iLCJCbGFja2JlcnJ5IGJpb21hc3MiLCJUTVIgZGlldCAxIiwiVE1SIGRpZXQgMiIsIkZseSBtZWFsIiwiUy4gdHVidWxvc2EgZnJ1aXQiKSkrDQogIHNjYWxlX3lfY29udGludW91cyhuYW1lPWV4cHJlc3Npb24ocGFzdGUoIkdhcyBwcm9kdWN0aW9uIChtTCAiLGdeLTEsIkRNKSIpKSwgYnJlYWtzPXNlcSgwLDI2MCwxMCkpKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobmFtZT0iRmVybWVudGF0aW9uIHRpbWUgKGgpIiwgYnJlYWtzPXNlcSgwLDQ4LDQpKQ0KZ3ANCmdwPWdwK3RoZW1lKGF4aXMubGluZSA9IGVsZW1lbnRfbGluZShjb2xvdXIgPSAiYmxhY2siLCBzaXplID0gMC43LCBsaW5ldHlwZSA9ICJzb2xpZCIpLA0KIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICJ0cmFuc3BhcmVudCIpLA0KIGxlZ2VuZC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAidHJhbnNwYXJlbnQiLCBzaXplPTAuNSwgbGluZXR5cGU9InNvbGlkIixjb2xvdXIgPSJibGFjayIpLGxlZ2VuZC5wb3NpdGlvbiA9IGMoMC4xNSwgMC44MCksbGVnZW5kLmtleS5zaXplID0gdW5pdCgwLjQyLCAnY20nKSkNCmdwDQpgYGANCg0KKioqDQoqKioNCg0KIyAqKjQgUGxvdCBETU8qKg0KDQpgYGB7cn0NCkRNTy5zdW1tYXJ5IDwtIGRhZG9zICU+JQ0KICBncm91cF9ieShUcmF0KSAlPiUNCiAgc3VtbWFyaXNlKA0KICAgIHNkID0gc2QoRE1PXzQ4LCBuYS5ybSA9IFRSVUUpLA0KICAgIERNTyA9IG1lYW4oRE1PXzQ4LG5hLnJtID0gVFJVRSkpDQpETU8uc3VtbWFyeQ0KDQojQW5vdmEgZSBUdWtleQ0KbW9kLmRtbyA9IGxtZXIoRE1PXzQ4IH4gVHJhdCArICgxfElub2N1bG8pLGRhdGEgPWRhZG9zKQ0KcHJpbnQoYW5vdmEobW9kLmRtbykpDQptZWRpYXMgPSBlbW1lYW5zKG1vZC5kbW8sIH4gVHJhdCkNCnByaW50KHN1bW1hcnkobWVkaWFzKSkNCnR1a2V5X2dsaHQgPSBnbGh0KG1vZC5kbW8sIGxpbmZjdCA9IG1jcChUcmF0ID0gIlR1a2V5IikpDQpwcmludChzdW1tYXJ5KHR1a2V5X2dsaHQpKQ0KbGV0cmFzID0gY2xkKHR1a2V5X2dsaHQpDQpwcmludChsZXRyYXMpDQoNCiNQbG90DQpncDI9Z2dwbG90KERNTy5zdW1tYXJ5LCBhZXMoeD1UcmF0LCB5PURNTykpKw0KICBnZW9tX2NvbChhZXMoZmlsbCA9IFRyYXQpLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgDQogIGdlb21fZXJyb3JiYXIoYWVzKHltaW49RE1PLXNkLCB5bWF4PURNTytzZCksIHdpZHRoPS4yLCBwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZSguOSkpKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJncmV5NDAiLCAiYmx1ZTMiLCAiYnJvd24yIiwiY2hvY29sYXRlNCIsImN5YW4iLCAieWVsbG93MyIsImdyZWVuNCIpLG5hbWU9ICJUcmVhdG1lbnRzIixsYWJlbHMgPSBjKCJQYXN0dXJlIiwiRm9yYWdlIHBhbG0iLCJCbGFja2JlcnJ5IGJpb21hc3MiLCJUTVIgZGlldCAxIiwiVE1SIGRpZXQgMiIsIkZseSBtZWFsIiwiUy4gdHVidWxvc2EgZnJ1aXQiKSkrDQogIHNjYWxlX3lfY29udGludW91cyhuYW1lPWV4cHJlc3Npb24ocGFzdGUoIklWRE9NIChnIGsiLGdeLTEsIikiKSksIGJyZWFrcyA9IHNlcSgwLDk1MCw1MCkpKw0KICBzY2FsZV94X2Rpc2NyZXRlKG5hbWU9IlRyZWF0bWVudHMiLGxhYmVscyA9IGMoIkFtb3N0cmEgMDEiID0gIlBhc3R1cmUiLCJBbW9zdHJhIDAyIiA9ICJGb3JhZ2UgcGFsbSIsIkFtb3N0cmEgMDMiID0gIkJsYWNrYmVycnkgYmlvbWFzcyIsIkFtb3N0cmEgMDQiID0gIlRNUiBkaWV0IDEiLCJBbW9zdHJhIDA1IiA9ICJUTVIgZGlldCAyIiwiQW1vc3RyYSAwNiIgPSAiRmx5IG1lYWwiLCJBbW9zdHJhIDA3IiA9ICJTLiB0dWJ1bG9zYSBmcnVpdCIpKStjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoNTAsOTUwKSkNCmdwMg0KZ3AyPWdwMit0aGVtZShheGlzLmxpbmUgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gImJsYWNrIiwgc2l6ZSA9IDAuNywgbGluZXR5cGUgPSAic29saWQiKSwNCiAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gInRyYW5zcGFyZW50IiksDQogIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwNCiAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoY29sb3VyID0gImJsYWNrIixhbmdsZSA9IDE1LCBoanVzdCA9IDEsc2l6ZSA9IDkpKQ0KZ3AyDQpgYGANCg0KKioqDQoqKioNCg0KIyAqKjUgQ29tYmluYXIgZ3JhZmljb3MqKg0KDQpgYGB7cn0NCiMgQ29tYmluYXIgb3MgZ3LDoWZpY29zDQpjb21iaW5hZG8gPC0gKGdwIC8gZ3AyKSArDQogIHBsb3RfYW5ub3RhdGlvbih0YWdfbGV2ZWxzID0gIkEiKSAmIA0KICB0aGVtZShwbG90LnRhZyA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYsIGZhY2UgPSAiYm9sZCIpKQ0KDQojIFZpc3VhbGl6YXINCmNvbWJpbmFkbw0KZ2dzYXZlKCJncmFmaWNvX2NvbWJpbmFkby5wbmciLCBjb21iaW5hZG8sIHdpZHRoID0gNywgaGVpZ2h0ID0gOCwgZHBpID0gMzAwKQ0KYGBgDQoNCioqKg0KKioqDQoNCiMgKio2IEFub3ZhIGUgdHVrZXkqKg0KDQpgYGB7cn0NCm5hbWVzKGRhZG9zKSANCnN0cihkYWRvcykNCg0KdmFyaWFibGVzIDwtIGMoIkdQIiwiQ0g0LkRNTyIsIkRNT180OCIsIk5fTkgzIikNCnZhcmlhYmxlcw0KDQojIFRlc3RlcyBkZSBub3JtYWxpZGFkZSBlIGhvbW9jZWRhc3RpY2lkYWRlIChjb20gbG0gcGFyYSBzaW1wbGlmaWNhw6fDo28pDQp0ZXN0ZXMgPC0gbGFwcGx5KHZhcmlhYmxlcywgZnVuY3Rpb24odmFyKSB7DQogIGZvcm11bGEgPC0gYXMuZm9ybXVsYShwYXN0ZSh2YXIsICJ+IFRyYXQgKyAoMXxJbm9jdWxvKSIpKQ0KICBtb2RlbG8gPC0gbG1lcihmb3JtdWxhLCBkYXRhID0gZGFkb3MpICANCiAgcmVzIDwtIHJlc2lkdWFscyhtb2RlbG8pDQogIGRhZG9zX21vZGVsbyA8LSBtb2RlbC5mcmFtZShtb2RlbG8pIA0KICBzaGFwaXJvX3AgPC0gc2hhcGlyby50ZXN0KHJlcykkcC52YWx1ZQ0KICBsZXZlbmVfcCA8LSBsZXZlbmVUZXN0KHJlcyB+IFRyYXQsIGRhdGEgPSBkYWRvc19tb2RlbG8pWzEsICJQcig+RikiXQ0KICBkYXRhLmZyYW1lKFZhcmlhdmVsID0gdmFyLA0KICAgICAgICAgICAgIHBfU2hhcGlybyA9IHJvdW5kKHNoYXBpcm9fcCwgNCksDQogICAgICAgICAgICAgcF9MZXZlbmUgPSByb3VuZChsZXZlbmVfcCwgNCkpDQp9KQ0KDQpyZXN1bHRhZG9fdGVzdGVzIDwtIGRvLmNhbGwocmJpbmQsIHRlc3RlcykNCnByaW50KHJlc3VsdGFkb190ZXN0ZXMpDQoNCiMgQW7DoWxpc2UgZG8gbW9kZWxvIG1pc3RvIChxdWFkcm8gbGF0aW5vKSBlIGNvbXBhcmHDp8OjbyBkZSBtw6lkaWFzDQpmb3IgKHZhciBpbiB2YXJpYWJsZXMpIHsNCiAgY2F0KCJcblxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFZhcmnDoXZlbDoiLCB2YXIsICIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiIpDQogIGZvcm11bGFfbWlzdGEgPC0gYXMuZm9ybXVsYShwYXN0ZSh2YXIsICJ+IFRyYXQgKyAoMXxJbm9jdWxvKSIpKQ0KICBtb2RfbWlzdG8gPC0gbG1lcihmb3JtdWxhX21pc3RhLCBkYXRhID0gZGFkb3MpDQogICMgQU5PVkENCiAgY2F0KCJBTk9WQSAobW9kZWxvIG1pc3RvKTpcbiIpDQogIHByaW50KGFub3ZhKG1vZF9taXN0bykpDQogICMgTcOpZGlhcw0KICBjYXQoIlxuTcOpZGlhcyAoZW1tZWFucyk6XG4iKQ0KICBtZWRpYXMgPC0gZW1tZWFucyhtb2RfbWlzdG8sIH5UcmF0KQ0KICBwcmludChzdW1tYXJ5KG1lZGlhcykpDQogICMgQ29tcGFyYcOnw7VlcyBtw7psdGlwbGFzIA0KICBjYXQoIlxuVHVrZXkgKGdsaHQpOlxuIikNCiAgdHVrZXlfZ2xodCA8LSBnbGh0KG1vZF9taXN0bywgbGluZmN0ID0gbWNwKFRyYXQgPSAiVHVrZXkiKSkNCiAgcHJpbnQoc3VtbWFyeSh0dWtleV9nbGh0KSkNCiAgIyBMZXRyYXMgY29tcGFjdGFzDQogIGNhdCgiXG5MZXRyYXMgZG8gVHVrZXkgKGdsaHQpOlxuIikNCiAgbGV0cmFzIDwtIGNsZCh0dWtleV9nbGh0KQ0KICBwcmludChsZXRyYXMpDQp9DQpgYGANCg0K