Cargar los datos

ruta_archivo <- "C:/Users/shami/Downloads/NUM3R2013(R).xlsx"
datos <- read_excel(ruta_archivo)

Inspección inicial de los datos

head(datos)
summary(datos)
      año                         tipo de agua        COD. Muestra     Lugar             Distrito          Provincia           Aspecto         
 Min.   :1908-10-01 00:00:00.00   Length:243         Min.   :3106   Length:243         Length:243         Length:243         Length:243        
 1st Qu.:2013-10-15 00:00:00.00   Class :character   1st Qu.:3166   Class :character   Class :character   Class :character   Class :character  
 Median :2013-10-20 00:00:00.00   Mode  :character   Median :3581   Mode  :character   Mode  :character   Mode  :character   Mode  :character  
 Mean   :2013-05-16 05:43:42.22                      Mean   :3468                                                                              
 3rd Qu.:2013-10-30 00:00:00.00                      3rd Qu.:3663                                                                              
 Max.   :2014-01-07 00:00:00.00                      Max.   :3944                                                                              
                                                     NA's   :1                                                                                 
    Color               Olor              Sabor           polemiel H-PH   turbidez(NTU)     dureza total     Alcalinidad  (mg/L) cloruros  (mg/L)
 Length:243         Length:243         Length:243         Min.   :1.800   Min.   : 0.000   Min.   :   0.00   Length:243          Min.   :  0.00  
 Class :character   Class :character   Class :character   1st Qu.:7.300   1st Qu.: 1.000   1st Qu.:  31.80   Class :character    1st Qu.: 10.41  
 Mode  :character   Mode  :character   Mode  :character   Median :7.500   Median : 3.000   Median :  98.42   Mode  :character    Median : 16.61  
                                                          Mean   :7.543   Mean   : 2.918   Mean   : 140.21                       Mean   : 38.21  
                                                          3rd Qu.:7.900   3rd Qu.: 4.000   3rd Qu.: 196.00                       3rd Qu.: 42.74  
                                                          Max.   :9.300   Max.   :20.000   Max.   :1899.16                       Max.   :663.62  
                                                                                                                                                 
 sulfatos (mg/L)  nitratos  (mg/L)   calcio  (mg/L)    magnesio (mg/L) solidos totales  (mg/L)
 Min.   :  0.00   Length:243         Min.   :  0.000   Min.   : 0.00   Min.   :  0.00         
 1st Qu.:  8.00   Class :character   1st Qu.:  4.055   1st Qu.: 1.91   1st Qu.: 24.00         
 Median : 25.89   Mode  :character   Median : 21.790   Median : 6.84   Median : 89.29         
 Mean   : 51.72                      Mean   : 40.634   Mean   :11.06   Mean   :135.11         
 3rd Qu.: 78.00                      3rd Qu.: 59.845   3rd Qu.:12.96   3rd Qu.:199.51         
 Max.   :380.00                      Max.   :596.910   Max.   :98.90   Max.   :967.00         
                                                                                              
str(datos)
tibble [243 × 20] (S3: tbl_df/tbl/data.frame)
 $ año                    : POSIXct[1:243], format: "2013-10-20" "2013-10-20" "2013-10-20" "2013-11-05" ...
 $ tipo de agua           : chr [1:243] "Agua potable" "Agua potable" "Agua potable" "Agua potable" ...
 $ COD. Muestra           : num [1:243] 3194 3195 3196 3682 3672 ...
 $ Lugar                  : chr [1:243] "Puno" "Puno" "Puno" "Puno" ...
 $ Distrito               : chr [1:243] "Ocuviri" "Ocuviri" "Ocuviri" NA ...
 $ Provincia              : chr [1:243] "Lampa" "Lampa" "Lampa" NA ...
 $ Aspecto                : chr [1:243] "Liquido" "Liquido" "Liquido" "Liquido" ...
 $ Color                  : chr [1:243] "Incoloro" "Incoloro" "Incoloro" "Incoloro" ...
 $ Olor                   : chr [1:243] "Inodoro" "Inodoro" "Inodoro" "Inodoro" ...
 $ Sabor                  : chr [1:243] "Insipido" "Insipido" "Insipido" "Insipido" ...
 $ polemiel H-PH          : num [1:243] 7.7 7.5 7.4 7.7 7.3 7.5 7.2 7.3 7.3 7.8 ...
 $ turbidez(NTU)          : num [1:243] 2 2 3 3 6 2 1 2 5 5 ...
 $ dureza total           : num [1:243] 76 65.6 65.7 249.7 0 ...
 $ Alcalinidad  (mg/L)    : chr [1:243] "68.26m" "60.24" "38.26" "269.47000000000003" ...
 $ cloruros  (mg/L)       : num [1:243] 29.2 12.3 19.1 42.4 240.1 ...
 $ sulfatos (mg/L)        : num [1:243] 45 16 25 92 128 44 12 76 76 84 ...
 $ nitratos  (mg/L)       : chr [1:243] "Negativo" "Negativo" "Negativo" "Negativo" ...
 $ calcio  (mg/L)         : num [1:243] 24 11.5 18.2 83.7 0 ...
 $ magnesio (mg/L)        : num [1:243] 5.09 4.09 6.09 9.86 0 ...
 $ solidos totales  (mg/L): num [1:243] 59.6 17.9 21.6 348 795 ...

Verificar los nombres de las columnas

colnames(datos)
 [1] "año"                     "tipo de agua"            "COD. Muestra"            "Lugar"                   "Distrito"               
 [6] "Provincia"               "Aspecto"                 "Color"                   "Olor"                    "Sabor"                  
[11] "polemiel H-PH"           "turbidez(NTU)"           "dureza total"            "Alcalinidad  (mg/L)"     "cloruros  (mg/L)"       
[16] "sulfatos (mg/L)"         "nitratos  (mg/L)"        "calcio  (mg/L)"          "magnesio (mg/L)"         "solidos totales  (mg/L)"

Convertir variables categóricas a factores

datos <- datos %>% mutate("tipo de agua" = as.factor("tipo de agua"),Distrito = as.factor(Distrito) )

Ordenar los datos por año, tipo de agua y distrito

datos_ordenados <- datos %>%arrange("tipo de agua", Distrito)

Ver los datos ordenados

head(datos_ordenados)

Verificar valores faltantes

sum(is.na(datos_ordenados))
[1] 61

Realizar ANOVA

ruta_Ensamble <-"C:/Users/shami/Downloads/NUM3R2013(R).xlsx"
excel_sheets(ruta_Ensamble)
[1] "Hoja1"
casoDBCA1<-read_excel(ruta_Ensamble)
print(casoDBCA1)
AÑO<-factor(casoDBCA1$año)
TIP<-factor(casoDBCA1$`tipo de agua`)
COD<-factor(casoDBCA1$`COD. Muestra`)
LUG<-factor(casoDBCA1$Lugar)
DIS<-factor(casoDBCA1$Distrito)
PROV<-factor(casoDBCA1$Provincia)
ASP<-factor(casoDBCA1$Aspecto)
COL<-factor(casoDBCA1$Color)
OL<-factor(casoDBCA1$Olor)
SAB<-factor(casoDBCA1$Sabor)
PH<-factor(casoDBCA1$`polemiel H-PH`)
TUR<-factor(casoDBCA1$`turbidez(NTU)`)
DUR<-factor(casoDBCA1$`dureza total`)
ALC<-factor(casoDBCA1$`Alcalinidad  (mg/L)`)
CLOR<-factor(casoDBCA1$`cloruros  (mg/L)`)
SUL<-factor(casoDBCA1$`sulfatos (mg/L)`)
NIT<-factor(casoDBCA1$`nitratos  (mg/L)`)
CAL<-factor(casoDBCA1$`calcio  (mg/L)`)
MAG<-factor(casoDBCA1$`magnesio (mg/L)`)
SOLTO<-factor(casoDBCA1$`solidos totales  (mg/L)`)
TIP<-as.vector(casoDBCA1$`tipo de agua`)
PH1 <- as.numeric(as.vector(PH))
par(mfrow=c(1,1))
boxplot(split(PH1,TUR),xlab="turbidez(NTU)", ylab="polemiel H - PH")

Verificar la conversión

str(datos_ordenados)
tibble [243 × 20] (S3: tbl_df/tbl/data.frame)
 $ año                    : POSIXct[1:243], format: "2013-08-27" "2013-08-27" "2013-09-05" "2013-09-05" ...
 $ tipo de agua           : Factor w/ 1 level "tipo de agua": 1 1 1 1 1 1 1 1 1 1 ...
 $ COD. Muestra           : num [1:243] 3354 3569 3354 3580 3612 ...
 $ Lugar                  : chr [1:243] "Planta de tratamiento" "Planta de tratamiento" "Planta de tratamiento" "Planta de tratamiento" ...
 $ Distrito               : Factor w/ 44 levels "Alto Selva Alegre",..: 1 1 1 1 2 2 3 3 4 4 ...
 $ Provincia              : chr [1:243] "Arequipa" "Arequipa" "Arequipa" "Arequipa" ...
 $ Aspecto                : chr [1:243] "Líquido" "Líquido" "Líquido" "Líquido" ...
 $ Color                  : chr [1:243] "Característico al agua residual" "Característico al agua residual" "Característico al agua residual" "Característico al agua residual" ...
 $ Olor                   : chr [1:243] "Característico al agua residual" "Característico al agua residual" "Característico al agua residual" "Característico al agua residual" ...
 $ Sabor                  : chr [1:243] "0" "0" "0" "0" ...
 $ polemiel H-PH          : num [1:243] 7.8 7.8 8 8 4.5 7.4 7.9 7.9 7.3 7 ...
 $ turbidez(NTU)          : num [1:243] 0 0 0 0 8 3 0 0 20 14 ...
 $ dureza total           : num [1:243] 0 0 0 0 249 ...
 $ Alcalinidad  (mg/L)    : chr [1:243] "0" "0" "0" "0" ...
 $ cloruros  (mg/L)       : num [1:243] 0 0 0 0 23 ...
 $ sulfatos (mg/L)        : num [1:243] 0 0 0 0 107 4 8 8 8 8 ...
 $ nitratos  (mg/L)       : chr [1:243] "0" "0" "0" "0" ...
 $ calcio  (mg/L)         : num [1:243] 0 0 0 0 46.1 ...
 $ magnesio (mg/L)        : num [1:243] 0 0 0 0 35.2 ...
 $ solidos totales  (mg/L): num [1:243] 0 0 0 0 192 ...

Crear el modelo de ANOVA

aov.PH1 <- aov(PH1 ~ TUR, data = datos_ordenados)

Resumen del modelo para verificar

summary(aov.PH1)
             Df Sum Sq Mean Sq F value   Pr(>F)    
TUR          13  29.96  2.3046   3.059 0.000342 ***
Residuals   229 172.54  0.7534                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Realizar el análisis post-hoc con TukeyHSD

resultado_tukey <- TukeyHSD(aov.PH1)
print(resultado_tukey)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = PH1 ~ TUR, data = datos_ordenados)

$TUR
              diff        lwr       upr     p adj
1-0    0.865405405  0.1941856 1.5366252 0.0015120
2-0    0.841081081  0.1698612 1.5123009 0.0024752
3-0    0.925306122  0.2982344 1.5523779 0.0000973
4-0    0.860000000  0.1097483 1.6102517 0.0097046
5-0    0.960000000  0.2422952 1.6777048 0.0007672
6-0    0.531428571 -0.3823756 1.4452328 0.7835907
7-0    0.660000000 -1.1015456 2.4215456 0.9921045
8-0   -0.040000000 -1.8015456 1.7215456 1.0000000
10-0   0.610000000 -1.5222098 2.7422098 0.9994747
11-0   0.260000000 -2.7192861 3.2392861 1.0000000
12-0   1.660000000 -1.3192861 4.6392861 0.8304819
14-0   0.160000000 -2.8192861 3.1392861 1.0000000
20-0   0.460000000 -2.5192861 3.4392861 0.9999996
2-1   -0.024324324 -0.7084949 0.6598463 1.0000000
3-1    0.059900717 -0.5810145 0.7008160 1.0000000
4-1   -0.005405405 -0.7672656 0.7564547 1.0000000
5-1    0.094594595 -0.6352365 0.8244257 1.0000000
6-1   -0.333976834 -1.2573356 0.5893820 0.9943290
7-1   -0.205405405 -1.9719263 1.5611155 1.0000000
8-1   -0.905405405 -2.6719263 0.8611155 0.9002031
10-1  -0.255405405 -2.3917275 1.8809167 1.0000000
11-1  -0.605405405 -3.5876360 2.3768252 0.9999892
12-1   0.794594595 -2.1876360 3.7768252 0.9997574
14-1  -0.705405405 -3.6876360 2.2768252 0.9999361
20-1  -0.405405405 -3.3876360 2.5768252 0.9999999
3-2    0.084225041 -0.5566902 0.7251403 0.9999999
4-2    0.018918919 -0.7429412 0.7807791 1.0000000
5-2    0.118918919 -0.6109122 0.8487501 0.9999992
6-2   -0.309652510 -1.2330113 0.6137063 0.9972821
7-2   -0.181081081 -1.9476020 1.5854398 1.0000000
8-2   -0.881081081 -2.6476020 0.8854398 0.9172604
10-2  -0.231081081 -2.3674031 1.9052410 1.0000000
11-2  -0.581081081 -3.5633116 2.4011495 0.9999933
12-2   0.818918919 -2.1633116 3.8011495 0.9996626
14-2  -0.681081081 -3.6633116 2.3011495 0.9999572
20-2  -0.381081081 -3.3633116 2.6011495 1.0000000
4-3   -0.065306122 -0.7885722 0.6579600 1.0000000
5-3    0.034693878 -0.6547526 0.7241403 1.0000000
6-3   -0.393877551 -1.2856591 0.4979040 0.9669716
7-3   -0.265306122 -2.0155287 1.4849165 0.9999997
8-3   -0.965306122 -2.7155287 0.7849165 0.8404951
10-3  -0.315306122 -2.4381709 1.8075587 0.9999998
11-3  -0.665306122 -3.6379114 2.3072991 0.9999661
12-3   0.734693878 -2.2379114 3.7072991 0.9998949
14-3  -0.765306122 -3.7379114 2.2072991 0.9998340
20-3  -0.465306122 -3.4379114 2.5072991 0.9999995
5-4    0.100000000 -0.7031158 0.9031158 1.0000000
6-4   -0.328571429 -1.3108814 0.6537386 0.9973511
7-4   -0.200000000 -1.9980372 1.5980372 1.0000000
8-4   -0.900000000 -2.6980372 0.8980372 0.9151734
10-4  -0.250000000 -2.4124554 1.9124554 1.0000000
11-4  -0.600000000 -3.6010066 2.4010066 0.9999910
12-4   0.800000000 -2.2010066 3.8010066 0.9997560
14-4  -0.700000000 -3.7010066 2.3010066 0.9999455
20-4  -0.400000000 -3.4010066 2.6010066 0.9999999
6-5   -0.428571429 -1.3862538 0.5291109 0.9633062
7-5   -0.300000000 -2.0847017 1.4847017 0.9999989
8-5   -1.000000000 -2.7847017 0.7847017 0.8247761
10-5  -0.350000000 -2.5013800 1.8013800 0.9999992
11-5  -0.700000000 -3.6930358 2.2930358 0.9999438
12-5   0.700000000 -2.2930358 3.6930358 0.9999438
14-5  -0.800000000 -3.7930358 2.1930358 0.9997488
20-5  -0.500000000 -3.4930358 2.4930358 0.9999990
7-6    0.128571429 -1.7436193 2.0007622 1.0000000
8-6   -0.571428571 -2.4436193 1.3007622 0.9989587
10-6   0.078571429 -2.1459227 2.3030655 1.0000000
11-6  -0.271428571 -3.3174426 2.7745854 1.0000000
12-6   1.128571429 -1.9174426 4.1745854 0.9928849
14-6  -0.371428571 -3.4174426 2.6745854 1.0000000
20-6  -0.071428571 -3.1174426 2.9745854 1.0000000
8-7   -0.700000000 -3.1027282 1.7027282 0.9993622
10-7  -0.050000000 -2.7363318 2.6363318 1.0000000
11-7  -0.400000000 -3.7979709 2.9979709 1.0000000
12-7   1.000000000 -2.3979709 4.3979709 0.9992901
14-7  -0.500000000 -3.8979709 2.8979709 0.9999998
20-7  -0.200000000 -3.5979709 3.1979709 1.0000000
10-8   0.650000000 -2.0363318 3.3363318 0.9999173
11-8   0.300000000 -3.0979709 3.6979709 1.0000000
12-8   1.700000000 -1.6979709 5.0979709 0.9154654
14-8   0.200000000 -3.1979709 3.5979709 1.0000000
20-8   0.500000000 -2.8979709 3.8979709 0.9999998
11-10 -0.350000000 -3.9540923 3.2540923 1.0000000
12-10  1.050000000 -2.5540923 4.6540923 0.9993622
14-10 -0.450000000 -4.0540923 3.1540923 1.0000000
20-10 -0.150000000 -3.7540923 3.4540923 1.0000000
12-11  1.400000000 -2.7616474 5.5616474 0.9971963
14-11 -0.100000000 -4.2616474 4.0616474 1.0000000
20-11  0.200000000 -3.9616474 4.3616474 1.0000000
14-12 -1.500000000 -5.6616474 2.6616474 0.9945146
20-12 -1.200000000 -5.3616474 2.9616474 0.9994286
20-14  0.300000000 -3.8616474 4.4616474 1.0000000
aov(PH1 ~ TUR, data = datos_ordenados)
Call:
   aov(formula = PH1 ~ TUR, data = datos_ordenados)

Terms:
                      TUR Residuals
Sum of Squares   29.96003 172.53627
Deg. of Freedom        13       229

Residual standard error: 0.8680055
Estimated effects may be unbalanced
aov.PH1 <- aov(PH1 ~ TUR,data = datos_ordenados)
aov(aov.PH1)
Call:
   aov(formula = aov.PH1)

Terms:
                      TUR Residuals
Sum of Squares   29.96003 172.53627
Deg. of Freedom        13       229

Residual standard error: 0.8680055
Estimated effects may be unbalanced
aov.PH1 <- aov(PH1 ~ TUR,data = datos_ordenados)
modelo <- aov(PH1 ~ TUR,data = datos_ordenados)
print(resultado_tukey)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = PH1 ~ TUR, data = datos_ordenados)

$TUR
              diff        lwr       upr     p adj
1-0    0.865405405  0.1941856 1.5366252 0.0015120
2-0    0.841081081  0.1698612 1.5123009 0.0024752
3-0    0.925306122  0.2982344 1.5523779 0.0000973
4-0    0.860000000  0.1097483 1.6102517 0.0097046
5-0    0.960000000  0.2422952 1.6777048 0.0007672
6-0    0.531428571 -0.3823756 1.4452328 0.7835907
7-0    0.660000000 -1.1015456 2.4215456 0.9921045
8-0   -0.040000000 -1.8015456 1.7215456 1.0000000
10-0   0.610000000 -1.5222098 2.7422098 0.9994747
11-0   0.260000000 -2.7192861 3.2392861 1.0000000
12-0   1.660000000 -1.3192861 4.6392861 0.8304819
14-0   0.160000000 -2.8192861 3.1392861 1.0000000
20-0   0.460000000 -2.5192861 3.4392861 0.9999996
2-1   -0.024324324 -0.7084949 0.6598463 1.0000000
3-1    0.059900717 -0.5810145 0.7008160 1.0000000
4-1   -0.005405405 -0.7672656 0.7564547 1.0000000
5-1    0.094594595 -0.6352365 0.8244257 1.0000000
6-1   -0.333976834 -1.2573356 0.5893820 0.9943290
7-1   -0.205405405 -1.9719263 1.5611155 1.0000000
8-1   -0.905405405 -2.6719263 0.8611155 0.9002031
10-1  -0.255405405 -2.3917275 1.8809167 1.0000000
11-1  -0.605405405 -3.5876360 2.3768252 0.9999892
12-1   0.794594595 -2.1876360 3.7768252 0.9997574
14-1  -0.705405405 -3.6876360 2.2768252 0.9999361
20-1  -0.405405405 -3.3876360 2.5768252 0.9999999
3-2    0.084225041 -0.5566902 0.7251403 0.9999999
4-2    0.018918919 -0.7429412 0.7807791 1.0000000
5-2    0.118918919 -0.6109122 0.8487501 0.9999992
6-2   -0.309652510 -1.2330113 0.6137063 0.9972821
7-2   -0.181081081 -1.9476020 1.5854398 1.0000000
8-2   -0.881081081 -2.6476020 0.8854398 0.9172604
10-2  -0.231081081 -2.3674031 1.9052410 1.0000000
11-2  -0.581081081 -3.5633116 2.4011495 0.9999933
12-2   0.818918919 -2.1633116 3.8011495 0.9996626
14-2  -0.681081081 -3.6633116 2.3011495 0.9999572
20-2  -0.381081081 -3.3633116 2.6011495 1.0000000
4-3   -0.065306122 -0.7885722 0.6579600 1.0000000
5-3    0.034693878 -0.6547526 0.7241403 1.0000000
6-3   -0.393877551 -1.2856591 0.4979040 0.9669716
7-3   -0.265306122 -2.0155287 1.4849165 0.9999997
8-3   -0.965306122 -2.7155287 0.7849165 0.8404951
10-3  -0.315306122 -2.4381709 1.8075587 0.9999998
11-3  -0.665306122 -3.6379114 2.3072991 0.9999661
12-3   0.734693878 -2.2379114 3.7072991 0.9998949
14-3  -0.765306122 -3.7379114 2.2072991 0.9998340
20-3  -0.465306122 -3.4379114 2.5072991 0.9999995
5-4    0.100000000 -0.7031158 0.9031158 1.0000000
6-4   -0.328571429 -1.3108814 0.6537386 0.9973511
7-4   -0.200000000 -1.9980372 1.5980372 1.0000000
8-4   -0.900000000 -2.6980372 0.8980372 0.9151734
10-4  -0.250000000 -2.4124554 1.9124554 1.0000000
11-4  -0.600000000 -3.6010066 2.4010066 0.9999910
12-4   0.800000000 -2.2010066 3.8010066 0.9997560
14-4  -0.700000000 -3.7010066 2.3010066 0.9999455
20-4  -0.400000000 -3.4010066 2.6010066 0.9999999
6-5   -0.428571429 -1.3862538 0.5291109 0.9633062
7-5   -0.300000000 -2.0847017 1.4847017 0.9999989
8-5   -1.000000000 -2.7847017 0.7847017 0.8247761
10-5  -0.350000000 -2.5013800 1.8013800 0.9999992
11-5  -0.700000000 -3.6930358 2.2930358 0.9999438
12-5   0.700000000 -2.2930358 3.6930358 0.9999438
14-5  -0.800000000 -3.7930358 2.1930358 0.9997488
20-5  -0.500000000 -3.4930358 2.4930358 0.9999990
7-6    0.128571429 -1.7436193 2.0007622 1.0000000
8-6   -0.571428571 -2.4436193 1.3007622 0.9989587
10-6   0.078571429 -2.1459227 2.3030655 1.0000000
11-6  -0.271428571 -3.3174426 2.7745854 1.0000000
12-6   1.128571429 -1.9174426 4.1745854 0.9928849
14-6  -0.371428571 -3.4174426 2.6745854 1.0000000
20-6  -0.071428571 -3.1174426 2.9745854 1.0000000
8-7   -0.700000000 -3.1027282 1.7027282 0.9993622
10-7  -0.050000000 -2.7363318 2.6363318 1.0000000
11-7  -0.400000000 -3.7979709 2.9979709 1.0000000
12-7   1.000000000 -2.3979709 4.3979709 0.9992901
14-7  -0.500000000 -3.8979709 2.8979709 0.9999998
20-7  -0.200000000 -3.5979709 3.1979709 1.0000000
10-8   0.650000000 -2.0363318 3.3363318 0.9999173
11-8   0.300000000 -3.0979709 3.6979709 1.0000000
12-8   1.700000000 -1.6979709 5.0979709 0.9154654
14-8   0.200000000 -3.1979709 3.5979709 1.0000000
20-8   0.500000000 -2.8979709 3.8979709 0.9999998
11-10 -0.350000000 -3.9540923 3.2540923 1.0000000
12-10  1.050000000 -2.5540923 4.6540923 0.9993622
14-10 -0.450000000 -4.0540923 3.1540923 1.0000000
20-10 -0.150000000 -3.7540923 3.4540923 1.0000000
12-11  1.400000000 -2.7616474 5.5616474 0.9971963
14-11 -0.100000000 -4.2616474 4.0616474 1.0000000
20-11  0.200000000 -3.9616474 4.3616474 1.0000000
14-12 -1.500000000 -5.6616474 2.6616474 0.9945146
20-12 -1.200000000 -5.3616474 2.9616474 0.9994286
20-14  0.300000000 -3.8616474 4.4616474 1.0000000
class(aov.PH1)
[1] "aov" "lm" 
datos_ordenados$`turbidez(NTU)` <- as.factor(datos_ordenados$`turbidez(NTU)`)
resultado_tukey <- TukeyHSD(aov.PH1)
print(resultado_tukey)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = PH1 ~ TUR, data = datos_ordenados)

$TUR
              diff        lwr       upr     p adj
1-0    0.865405405  0.1941856 1.5366252 0.0015120
2-0    0.841081081  0.1698612 1.5123009 0.0024752
3-0    0.925306122  0.2982344 1.5523779 0.0000973
4-0    0.860000000  0.1097483 1.6102517 0.0097046
5-0    0.960000000  0.2422952 1.6777048 0.0007672
6-0    0.531428571 -0.3823756 1.4452328 0.7835907
7-0    0.660000000 -1.1015456 2.4215456 0.9921045
8-0   -0.040000000 -1.8015456 1.7215456 1.0000000
10-0   0.610000000 -1.5222098 2.7422098 0.9994747
11-0   0.260000000 -2.7192861 3.2392861 1.0000000
12-0   1.660000000 -1.3192861 4.6392861 0.8304819
14-0   0.160000000 -2.8192861 3.1392861 1.0000000
20-0   0.460000000 -2.5192861 3.4392861 0.9999996
2-1   -0.024324324 -0.7084949 0.6598463 1.0000000
3-1    0.059900717 -0.5810145 0.7008160 1.0000000
4-1   -0.005405405 -0.7672656 0.7564547 1.0000000
5-1    0.094594595 -0.6352365 0.8244257 1.0000000
6-1   -0.333976834 -1.2573356 0.5893820 0.9943290
7-1   -0.205405405 -1.9719263 1.5611155 1.0000000
8-1   -0.905405405 -2.6719263 0.8611155 0.9002031
10-1  -0.255405405 -2.3917275 1.8809167 1.0000000
11-1  -0.605405405 -3.5876360 2.3768252 0.9999892
12-1   0.794594595 -2.1876360 3.7768252 0.9997574
14-1  -0.705405405 -3.6876360 2.2768252 0.9999361
20-1  -0.405405405 -3.3876360 2.5768252 0.9999999
3-2    0.084225041 -0.5566902 0.7251403 0.9999999
4-2    0.018918919 -0.7429412 0.7807791 1.0000000
5-2    0.118918919 -0.6109122 0.8487501 0.9999992
6-2   -0.309652510 -1.2330113 0.6137063 0.9972821
7-2   -0.181081081 -1.9476020 1.5854398 1.0000000
8-2   -0.881081081 -2.6476020 0.8854398 0.9172604
10-2  -0.231081081 -2.3674031 1.9052410 1.0000000
11-2  -0.581081081 -3.5633116 2.4011495 0.9999933
12-2   0.818918919 -2.1633116 3.8011495 0.9996626
14-2  -0.681081081 -3.6633116 2.3011495 0.9999572
20-2  -0.381081081 -3.3633116 2.6011495 1.0000000
4-3   -0.065306122 -0.7885722 0.6579600 1.0000000
5-3    0.034693878 -0.6547526 0.7241403 1.0000000
6-3   -0.393877551 -1.2856591 0.4979040 0.9669716
7-3   -0.265306122 -2.0155287 1.4849165 0.9999997
8-3   -0.965306122 -2.7155287 0.7849165 0.8404951
10-3  -0.315306122 -2.4381709 1.8075587 0.9999998
11-3  -0.665306122 -3.6379114 2.3072991 0.9999661
12-3   0.734693878 -2.2379114 3.7072991 0.9998949
14-3  -0.765306122 -3.7379114 2.2072991 0.9998340
20-3  -0.465306122 -3.4379114 2.5072991 0.9999995
5-4    0.100000000 -0.7031158 0.9031158 1.0000000
6-4   -0.328571429 -1.3108814 0.6537386 0.9973511
7-4   -0.200000000 -1.9980372 1.5980372 1.0000000
8-4   -0.900000000 -2.6980372 0.8980372 0.9151734
10-4  -0.250000000 -2.4124554 1.9124554 1.0000000
11-4  -0.600000000 -3.6010066 2.4010066 0.9999910
12-4   0.800000000 -2.2010066 3.8010066 0.9997560
14-4  -0.700000000 -3.7010066 2.3010066 0.9999455
20-4  -0.400000000 -3.4010066 2.6010066 0.9999999
6-5   -0.428571429 -1.3862538 0.5291109 0.9633062
7-5   -0.300000000 -2.0847017 1.4847017 0.9999989
8-5   -1.000000000 -2.7847017 0.7847017 0.8247761
10-5  -0.350000000 -2.5013800 1.8013800 0.9999992
11-5  -0.700000000 -3.6930358 2.2930358 0.9999438
12-5   0.700000000 -2.2930358 3.6930358 0.9999438
14-5  -0.800000000 -3.7930358 2.1930358 0.9997488
20-5  -0.500000000 -3.4930358 2.4930358 0.9999990
7-6    0.128571429 -1.7436193 2.0007622 1.0000000
8-6   -0.571428571 -2.4436193 1.3007622 0.9989587
10-6   0.078571429 -2.1459227 2.3030655 1.0000000
11-6  -0.271428571 -3.3174426 2.7745854 1.0000000
12-6   1.128571429 -1.9174426 4.1745854 0.9928849
14-6  -0.371428571 -3.4174426 2.6745854 1.0000000
20-6  -0.071428571 -3.1174426 2.9745854 1.0000000
8-7   -0.700000000 -3.1027282 1.7027282 0.9993622
10-7  -0.050000000 -2.7363318 2.6363318 1.0000000
11-7  -0.400000000 -3.7979709 2.9979709 1.0000000
12-7   1.000000000 -2.3979709 4.3979709 0.9992901
14-7  -0.500000000 -3.8979709 2.8979709 0.9999998
20-7  -0.200000000 -3.5979709 3.1979709 1.0000000
10-8   0.650000000 -2.0363318 3.3363318 0.9999173
11-8   0.300000000 -3.0979709 3.6979709 1.0000000
12-8   1.700000000 -1.6979709 5.0979709 0.9154654
14-8   0.200000000 -3.1979709 3.5979709 1.0000000
20-8   0.500000000 -2.8979709 3.8979709 0.9999998
11-10 -0.350000000 -3.9540923 3.2540923 1.0000000
12-10  1.050000000 -2.5540923 4.6540923 0.9993622
14-10 -0.450000000 -4.0540923 3.1540923 1.0000000
20-10 -0.150000000 -3.7540923 3.4540923 1.0000000
12-11  1.400000000 -2.7616474 5.5616474 0.9971963
14-11 -0.100000000 -4.2616474 4.0616474 1.0000000
20-11  0.200000000 -3.9616474 4.3616474 1.0000000
14-12 -1.500000000 -5.6616474 2.6616474 0.9945146
20-12 -1.200000000 -5.3616474 2.9616474 0.9994286
20-14  0.300000000 -3.8616474 4.4616474 1.0000000
TukeyHSD(aov.PH1)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = PH1 ~ TUR, data = datos_ordenados)

$TUR
              diff        lwr       upr     p adj
1-0    0.865405405  0.1941856 1.5366252 0.0015120
2-0    0.841081081  0.1698612 1.5123009 0.0024752
3-0    0.925306122  0.2982344 1.5523779 0.0000973
4-0    0.860000000  0.1097483 1.6102517 0.0097046
5-0    0.960000000  0.2422952 1.6777048 0.0007672
6-0    0.531428571 -0.3823756 1.4452328 0.7835907
7-0    0.660000000 -1.1015456 2.4215456 0.9921045
8-0   -0.040000000 -1.8015456 1.7215456 1.0000000
10-0   0.610000000 -1.5222098 2.7422098 0.9994747
11-0   0.260000000 -2.7192861 3.2392861 1.0000000
12-0   1.660000000 -1.3192861 4.6392861 0.8304819
14-0   0.160000000 -2.8192861 3.1392861 1.0000000
20-0   0.460000000 -2.5192861 3.4392861 0.9999996
2-1   -0.024324324 -0.7084949 0.6598463 1.0000000
3-1    0.059900717 -0.5810145 0.7008160 1.0000000
4-1   -0.005405405 -0.7672656 0.7564547 1.0000000
5-1    0.094594595 -0.6352365 0.8244257 1.0000000
6-1   -0.333976834 -1.2573356 0.5893820 0.9943290
7-1   -0.205405405 -1.9719263 1.5611155 1.0000000
8-1   -0.905405405 -2.6719263 0.8611155 0.9002031
10-1  -0.255405405 -2.3917275 1.8809167 1.0000000
11-1  -0.605405405 -3.5876360 2.3768252 0.9999892
12-1   0.794594595 -2.1876360 3.7768252 0.9997574
14-1  -0.705405405 -3.6876360 2.2768252 0.9999361
20-1  -0.405405405 -3.3876360 2.5768252 0.9999999
3-2    0.084225041 -0.5566902 0.7251403 0.9999999
4-2    0.018918919 -0.7429412 0.7807791 1.0000000
5-2    0.118918919 -0.6109122 0.8487501 0.9999992
6-2   -0.309652510 -1.2330113 0.6137063 0.9972821
7-2   -0.181081081 -1.9476020 1.5854398 1.0000000
8-2   -0.881081081 -2.6476020 0.8854398 0.9172604
10-2  -0.231081081 -2.3674031 1.9052410 1.0000000
11-2  -0.581081081 -3.5633116 2.4011495 0.9999933
12-2   0.818918919 -2.1633116 3.8011495 0.9996626
14-2  -0.681081081 -3.6633116 2.3011495 0.9999572
20-2  -0.381081081 -3.3633116 2.6011495 1.0000000
4-3   -0.065306122 -0.7885722 0.6579600 1.0000000
5-3    0.034693878 -0.6547526 0.7241403 1.0000000
6-3   -0.393877551 -1.2856591 0.4979040 0.9669716
7-3   -0.265306122 -2.0155287 1.4849165 0.9999997
8-3   -0.965306122 -2.7155287 0.7849165 0.8404951
10-3  -0.315306122 -2.4381709 1.8075587 0.9999998
11-3  -0.665306122 -3.6379114 2.3072991 0.9999661
12-3   0.734693878 -2.2379114 3.7072991 0.9998949
14-3  -0.765306122 -3.7379114 2.2072991 0.9998340
20-3  -0.465306122 -3.4379114 2.5072991 0.9999995
5-4    0.100000000 -0.7031158 0.9031158 1.0000000
6-4   -0.328571429 -1.3108814 0.6537386 0.9973511
7-4   -0.200000000 -1.9980372 1.5980372 1.0000000
8-4   -0.900000000 -2.6980372 0.8980372 0.9151734
10-4  -0.250000000 -2.4124554 1.9124554 1.0000000
11-4  -0.600000000 -3.6010066 2.4010066 0.9999910
12-4   0.800000000 -2.2010066 3.8010066 0.9997560
14-4  -0.700000000 -3.7010066 2.3010066 0.9999455
20-4  -0.400000000 -3.4010066 2.6010066 0.9999999
6-5   -0.428571429 -1.3862538 0.5291109 0.9633062
7-5   -0.300000000 -2.0847017 1.4847017 0.9999989
8-5   -1.000000000 -2.7847017 0.7847017 0.8247761
10-5  -0.350000000 -2.5013800 1.8013800 0.9999992
11-5  -0.700000000 -3.6930358 2.2930358 0.9999438
12-5   0.700000000 -2.2930358 3.6930358 0.9999438
14-5  -0.800000000 -3.7930358 2.1930358 0.9997488
20-5  -0.500000000 -3.4930358 2.4930358 0.9999990
7-6    0.128571429 -1.7436193 2.0007622 1.0000000
8-6   -0.571428571 -2.4436193 1.3007622 0.9989587
10-6   0.078571429 -2.1459227 2.3030655 1.0000000
11-6  -0.271428571 -3.3174426 2.7745854 1.0000000
12-6   1.128571429 -1.9174426 4.1745854 0.9928849
14-6  -0.371428571 -3.4174426 2.6745854 1.0000000
20-6  -0.071428571 -3.1174426 2.9745854 1.0000000
8-7   -0.700000000 -3.1027282 1.7027282 0.9993622
10-7  -0.050000000 -2.7363318 2.6363318 1.0000000
11-7  -0.400000000 -3.7979709 2.9979709 1.0000000
12-7   1.000000000 -2.3979709 4.3979709 0.9992901
14-7  -0.500000000 -3.8979709 2.8979709 0.9999998
20-7  -0.200000000 -3.5979709 3.1979709 1.0000000
10-8   0.650000000 -2.0363318 3.3363318 0.9999173
11-8   0.300000000 -3.0979709 3.6979709 1.0000000
12-8   1.700000000 -1.6979709 5.0979709 0.9154654
14-8   0.200000000 -3.1979709 3.5979709 1.0000000
20-8   0.500000000 -2.8979709 3.8979709 0.9999998
11-10 -0.350000000 -3.9540923 3.2540923 1.0000000
12-10  1.050000000 -2.5540923 4.6540923 0.9993622
14-10 -0.450000000 -4.0540923 3.1540923 1.0000000
20-10 -0.150000000 -3.7540923 3.4540923 1.0000000
12-11  1.400000000 -2.7616474 5.5616474 0.9971963
14-11 -0.100000000 -4.2616474 4.0616474 1.0000000
20-11  0.200000000 -3.9616474 4.3616474 1.0000000
14-12 -1.500000000 -5.6616474 2.6616474 0.9945146
20-12 -1.200000000 -5.3616474 2.9616474 0.9994286
20-14  0.300000000 -3.8616474 4.4616474 1.0000000
plot(TukeyHSD(aov.PH1))

resaov<-aov(PH1 ~ TUR + PROV)
anova(resaov)
Analysis of Variance Table

Response: PH1
           Df Sum Sq Mean Sq F value    Pr(>F)    
TUR        13 48.552  3.7348  12.757 < 2.2e-16 ***
PROV       18 96.864  5.3813  18.382 < 2.2e-16 ***
Residuals 182 53.282  0.2928                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
cv.model(resaov)
[1] 7.144381
euc.lm <- lm(PH1 ~ TUR + PROV)
anova(euc.lm , test="F")
Analysis of Variance Table

Response: PH1
           Df Sum Sq Mean Sq F value    Pr(>F)    
TUR        13 48.552  3.7348  12.757 < 2.2e-16 ***
PROV       18 96.864  5.3813  18.382 < 2.2e-16 ***
Residuals 182 53.282  0.2928                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
boxplot(anova(euc.lm , test="F"))

 shapiro.test(euc.lm$res)

    Shapiro-Wilk normality test

data:  euc.lm$res
W = 0.91438, p-value = 8.874e-10
plot(anova(euc.lm , test="F"))

boxplot(PH1 ~ PROV, data = datos_ordenados)

boxplot(PH1 ~ DIS, data = datos_ordenados)

boxplot(PH1 ~ LUG, data = datos_ordenados)

fitb <- fitted(resaov)
res_stb <- rstandard(resaov)
plot(fitb,res_stb,xlab="Valores predichos", ylab="Residuos estandarizados",abline(h=0))

leveneTest(PH1 ~ TUR, center = "median")
Levene's Test for Homogeneity of Variance (center = "median")
       Df F value Pr(>F)
group  13  1.2404 0.2517
      229               
outLSD <-LSD.test(resaov, "TUR",console=TRUE)

Study: resaov ~ "TUR"

LSD t Test for PH1 

Mean Square Error:  0.2927568 

TUR,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 182
Critical Value of t: 1.973084 

Groups according to probability of means differences and alpha level( 0.05 )

Treatments with the same letter are not significantly different.
outHSD<-HSD.test(resaov, "TUR",console=TRUE)

Study: resaov ~ "TUR"

HSD Test for PH1 

Mean Square Error:  0.2927568 

TUR,  means

Alpha: 0.05 ; DF Error: 182 
Critical Value of Studentized Range: 4.807918 

Groups according to probability of means differences and alpha level( 0.05 )

Treatments with the same letter are not significantly different.
SNK.test(resaov, "TUR",console=TRUE)

Study: resaov ~ "TUR"

Student Newman Keuls Test
for PH1 

Mean Square Error:  0.2927568 

TUR,  means

Groups according to probability of means differences and alpha level( 0.05 )

Means with the same letter are not significantly different.
scheffe.test(resaov, "TUR",console=TRUE)

Study: resaov ~ "TUR"

Scheffe Test for PH1 

Mean Square Error  : 0.2927568 

TUR,  means

Alpha: 0.05 ; DF Error: 182 
Critical Value of F: 1.774262 

Groups according to probability of means differences and alpha level( 0.05 )

Means with the same letter are not significantly different.
duncan.test(resaov, "TUR",console=TRUE)

Study: resaov ~ "TUR"

Duncan's new multiple range test
for PH1 

Mean Square Error:  0.2927568 

TUR,  means

Groups according to probability of means differences and alpha level( 0.05 )

Means with the same letter are not significantly different.
LSD.test(resaov, "TUR", p.adj= "bon",console=TRUE)

Study: resaov ~ "TUR"

LSD t Test for PH1 
P value adjustment method: bonferroni 

Mean Square Error:  0.2927568 

TUR,  means and individual ( 95 %) CI

Alpha: 0.05 ; DF Error: 182
Critical Value of t: 3.517829 

Groups according to probability of means differences and alpha level( 0.05 )

Treatments with the same letter are not significantly different.
sk <- SK(resaov, which= "TUR",  dispersion="se", sig.level=0.05)
summary(sk)
Goups of means at sig.level = 0.05 
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIENhcmdhciBsb3MgZGF0b3MNCmBgYHtyfQ0KcnV0YV9hcmNoaXZvIDwtICJDOi9Vc2Vycy9zaGFtaS9Eb3dubG9hZHMvTlVNM1IyMDEzKFIpLnhsc3giDQpgYGANCmBgYHtyfQ0KZGF0b3MgPC0gcmVhZF9leGNlbChydXRhX2FyY2hpdm8pDQpgYGANCg0KIyBJbnNwZWNjacOzbiBpbmljaWFsIGRlIGxvcyBkYXRvcw0KYGBge3J9DQpoZWFkKGRhdG9zKQ0KYGBgDQpgYGB7cn0NCnN1bW1hcnkoZGF0b3MpDQpgYGANCmBgYHtyfQ0Kc3RyKGRhdG9zKQ0KYGBgDQojIFZlcmlmaWNhciBsb3Mgbm9tYnJlcyBkZSBsYXMgY29sdW1uYXMNCmBgYHtyfQ0KY29sbmFtZXMoZGF0b3MpDQpgYGANCiMgQ29udmVydGlyIHZhcmlhYmxlcyBjYXRlZ8OzcmljYXMgYSBmYWN0b3Jlcw0KYGBge3J9DQpkYXRvcyA8LSBkYXRvcyAlPiUgbXV0YXRlKCJ0aXBvIGRlIGFndWEiID0gYXMuZmFjdG9yKCJ0aXBvIGRlIGFndWEiKSxEaXN0cml0byA9IGFzLmZhY3RvcihEaXN0cml0bykgKQ0KYGBgDQojIE9yZGVuYXIgbG9zIGRhdG9zIHBvciBhw7FvLCB0aXBvIGRlIGFndWEgeSBkaXN0cml0bw0KYGBge3J9DQpkYXRvc19vcmRlbmFkb3MgPC0gZGF0b3MgJT4lYXJyYW5nZSgidGlwbyBkZSBhZ3VhIiwgRGlzdHJpdG8pDQpgYGANCiMgVmVyIGxvcyBkYXRvcyBvcmRlbmFkb3MNCmBgYHtyfQ0KaGVhZChkYXRvc19vcmRlbmFkb3MpDQpgYGANCiMgVmVyaWZpY2FyIHZhbG9yZXMgZmFsdGFudGVzDQpgYGB7cn0NCnN1bShpcy5uYShkYXRvc19vcmRlbmFkb3MpKQ0KYGBgDQojIFJlYWxpemFyIEFOT1ZBDQpgYGB7cn0NCnJ1dGFfRW5zYW1ibGUgPC0iQzovVXNlcnMvc2hhbWkvRG93bmxvYWRzL05VTTNSMjAxMyhSKS54bHN4Ig0KYGBgDQpgYGB7cn0NCmV4Y2VsX3NoZWV0cyhydXRhX0Vuc2FtYmxlKQ0KYGBgDQpgYGB7cn0NCmNhc29EQkNBMTwtcmVhZF9leGNlbChydXRhX0Vuc2FtYmxlKQ0KYGBgDQpgYGB7cn0NCnByaW50KGNhc29EQkNBMSkNCmBgYA0KYGBge3J9DQpBw5FPPC1mYWN0b3IoY2Fzb0RCQ0ExJGHDsW8pDQpgYGANCmBgYHtyfQ0KVElQPC1mYWN0b3IoY2Fzb0RCQ0ExJGB0aXBvIGRlIGFndWFgKQ0KYGBgDQpgYGB7cn0NCkNPRDwtZmFjdG9yKGNhc29EQkNBMSRgQ09ELiBNdWVzdHJhYCkNCmBgYA0KYGBge3J9DQpMVUc8LWZhY3RvcihjYXNvREJDQTEkTHVnYXIpDQpgYGANCmBgYHtyfQ0KRElTPC1mYWN0b3IoY2Fzb0RCQ0ExJERpc3RyaXRvKQ0KYGBgDQpgYGB7cn0NClBST1Y8LWZhY3RvcihjYXNvREJDQTEkUHJvdmluY2lhKQ0KYGBgDQpgYGB7cn0NCkFTUDwtZmFjdG9yKGNhc29EQkNBMSRBc3BlY3RvKQ0KYGBgDQpgYGB7cn0NCkNPTDwtZmFjdG9yKGNhc29EQkNBMSRDb2xvcikNCmBgYA0KYGBge3J9DQpPTDwtZmFjdG9yKGNhc29EQkNBMSRPbG9yKQ0KYGBgDQpgYGB7cn0NClNBQjwtZmFjdG9yKGNhc29EQkNBMSRTYWJvcikNCmBgYA0KYGBge3J9DQpQSDwtZmFjdG9yKGNhc29EQkNBMSRgcG9sZW1pZWwgSC1QSGApDQpgYGANCmBgYHtyfQ0KVFVSPC1mYWN0b3IoY2Fzb0RCQ0ExJGB0dXJiaWRleihOVFUpYCkNCmBgYA0KYGBge3J9DQpEVVI8LWZhY3RvcihjYXNvREJDQTEkYGR1cmV6YSB0b3RhbGApDQpgYGANCmBgYHtyfQ0KQUxDPC1mYWN0b3IoY2Fzb0RCQ0ExJGBBbGNhbGluaWRhZCAgKG1nL0wpYCkNCmBgYA0KYGBge3J9DQpDTE9SPC1mYWN0b3IoY2Fzb0RCQ0ExJGBjbG9ydXJvcyAgKG1nL0wpYCkNCmBgYA0KYGBge3J9DQpTVUw8LWZhY3RvcihjYXNvREJDQTEkYHN1bGZhdG9zIChtZy9MKWApDQpgYGANCmBgYHtyfQ0KTklUPC1mYWN0b3IoY2Fzb0RCQ0ExJGBuaXRyYXRvcyAgKG1nL0wpYCkNCmBgYA0KYGBge3J9DQpDQUw8LWZhY3RvcihjYXNvREJDQTEkYGNhbGNpbyAgKG1nL0wpYCkNCmBgYA0KYGBge3J9DQpNQUc8LWZhY3RvcihjYXNvREJDQTEkYG1hZ25lc2lvIChtZy9MKWApDQpgYGANCmBgYHtyfQ0KU09MVE88LWZhY3RvcihjYXNvREJDQTEkYHNvbGlkb3MgdG90YWxlcyAgKG1nL0wpYCkNCmBgYA0KYGBge3J9DQpUSVA8LWFzLnZlY3RvcihjYXNvREJDQTEkYHRpcG8gZGUgYWd1YWApDQpgYGANCmBgYHtyfQ0KUEgxIDwtIGFzLm51bWVyaWMoYXMudmVjdG9yKFBIKSkNCmBgYA0KYGBge3J9DQpwYXIobWZyb3c9YygxLDEpKQ0KYGBgDQpgYGB7cn0NCmJveHBsb3Qoc3BsaXQoUEgxLFRVUikseGxhYj0idHVyYmlkZXooTlRVKSIsIHlsYWI9InBvbGVtaWVsIEggLSBQSCIpDQpgYGANCiMgVmVyaWZpY2FyIGxhIGNvbnZlcnNpw7NuDQpgYGB7cn0NCnN0cihkYXRvc19vcmRlbmFkb3MpDQpgYGANCiMgQ3JlYXIgZWwgbW9kZWxvIGRlIEFOT1ZBDQpgYGB7cn0NCmFvdi5QSDEgPC0gYW92KFBIMSB+IFRVUiwgZGF0YSA9IGRhdG9zX29yZGVuYWRvcykNCmBgYA0KDQojIFJlc3VtZW4gZGVsIG1vZGVsbyBwYXJhIHZlcmlmaWNhcg0KDQpgYGB7cn0NCnN1bW1hcnkoYW92LlBIMSkNCmBgYA0KDQojIFJlYWxpemFyIGVsIGFuw6FsaXNpcyBwb3N0LWhvYyBjb24gVHVrZXlIU0QNCg0KYGBge3J9DQpyZXN1bHRhZG9fdHVrZXkgPC0gVHVrZXlIU0QoYW92LlBIMSkNCnByaW50KHJlc3VsdGFkb190dWtleSkNCmBgYA0KDQpgYGB7cn0NCmFvdihQSDEgfiBUVVIsIGRhdGEgPSBkYXRvc19vcmRlbmFkb3MpDQpgYGANCmBgYHtyfQ0KYW92LlBIMSA8LSBhb3YoUEgxIH4gVFVSLGRhdGEgPSBkYXRvc19vcmRlbmFkb3MpDQpgYGANCmBgYHtyfQ0KYW92KGFvdi5QSDEpDQpgYGANCmBgYHtyfQ0KYW92LlBIMSA8LSBhb3YoUEgxIH4gVFVSLGRhdGEgPSBkYXRvc19vcmRlbmFkb3MpDQpgYGANCmBgYHtyfQ0KbW9kZWxvIDwtIGFvdihQSDEgfiBUVVIsZGF0YSA9IGRhdG9zX29yZGVuYWRvcykNCnByaW50KHJlc3VsdGFkb190dWtleSkNCmBgYA0KDQpgYGB7cn0NCmNsYXNzKGFvdi5QSDEpDQpgYGANCmBgYHtyfQ0KZGF0b3Nfb3JkZW5hZG9zJGB0dXJiaWRleihOVFUpYCA8LSBhcy5mYWN0b3IoZGF0b3Nfb3JkZW5hZG9zJGB0dXJiaWRleihOVFUpYCkNCmBgYA0KDQpgYGB7cn0NCnJlc3VsdGFkb190dWtleSA8LSBUdWtleUhTRChhb3YuUEgxKQ0KcHJpbnQocmVzdWx0YWRvX3R1a2V5KQ0KYGBgDQoNCmBgYHtyfQ0KVHVrZXlIU0QoYW92LlBIMSkNCmBgYA0KDQpgYGB7cn0NCnBsb3QoVHVrZXlIU0QoYW92LlBIMSkpDQpgYGANCg0KYGBge3J9DQpyZXNhb3Y8LWFvdihQSDEgfiBUVVIgKyBQUk9WKQ0KYGBgDQpgYGB7cn0NCmFub3ZhKHJlc2FvdikNCmBgYA0KYGBge3J9DQpjdi5tb2RlbChyZXNhb3YpDQpgYGANCmBgYHtyfQ0KZXVjLmxtIDwtIGxtKFBIMSB+IFRVUiArIFBST1YpDQpgYGANCmBgYHtyfQ0KYW5vdmEoZXVjLmxtICwgdGVzdD0iRiIpDQpgYGANCmBgYHtyfQ0KYm94cGxvdChhbm92YShldWMubG0gLCB0ZXN0PSJGIikpDQpgYGANCmBgYHtyfQ0KIHNoYXBpcm8udGVzdChldWMubG0kcmVzKQ0KYGBgDQpgYGB7cn0NCnBsb3QoYW5vdmEoZXVjLmxtICwgdGVzdD0iRiIpKQ0KYGBgDQpgYGB7cn0NCmJveHBsb3QoUEgxIH4gUFJPViwgZGF0YSA9IGRhdG9zX29yZGVuYWRvcykNCmBgYA0KYGBge3J9DQpib3hwbG90KFBIMSB+IERJUywgZGF0YSA9IGRhdG9zX29yZGVuYWRvcykNCmBgYA0KYGBge3J9DQpib3hwbG90KFBIMSB+IExVRywgZGF0YSA9IGRhdG9zX29yZGVuYWRvcykNCmBgYA0KDQpgYGB7cn0NCmZpdGIgPC0gZml0dGVkKHJlc2FvdikNCmBgYA0KYGBge3J9DQpyZXNfc3RiIDwtIHJzdGFuZGFyZChyZXNhb3YpDQpgYGANCmBgYHtyfQ0KcGxvdChmaXRiLHJlc19zdGIseGxhYj0iVmFsb3JlcyBwcmVkaWNob3MiLCB5bGFiPSJSZXNpZHVvcyBlc3RhbmRhcml6YWRvcyIsYWJsaW5lKGg9MCkpDQpgYGANCmBgYHtyfQ0KbGV2ZW5lVGVzdChQSDEgfiBUVVIsIGNlbnRlciA9ICJtZWRpYW4iKQ0KYGBgDQpgYGB7cn0NCm91dExTRCA8LUxTRC50ZXN0KHJlc2FvdiwgIlRVUiIsY29uc29sZT1UUlVFKQ0KYGBgDQpgYGB7cn0NCm91dEhTRDwtSFNELnRlc3QocmVzYW92LCAiVFVSIixjb25zb2xlPVRSVUUpDQpgYGANCmBgYHtyfQ0KU05LLnRlc3QocmVzYW92LCAiVFVSIixjb25zb2xlPVRSVUUpDQpgYGANCmBgYHtyfQ0Kc2NoZWZmZS50ZXN0KHJlc2FvdiwgIlRVUiIsY29uc29sZT1UUlVFKQ0KYGBgDQpgYGB7cn0NCmR1bmNhbi50ZXN0KHJlc2FvdiwgIlRVUiIsY29uc29sZT1UUlVFKQ0KYGBgDQpgYGB7cn0NCkxTRC50ZXN0KHJlc2FvdiwgIlRVUiIsIHAuYWRqPSAiYm9uIixjb25zb2xlPVRSVUUpDQpgYGANCmBgYHtyfQ0Kc2sgPC0gU0socmVzYW92LCB3aGljaD0gIlRVUiIsICBkaXNwZXJzaW9uPSJzZSIsIHNpZy5sZXZlbD0wLjA1KQ0KYGBgDQpgYGB7cn0NCnN1bW1hcnkoc2spDQpgYGANCg0KDQoNCg0KDQoNCg==