library(TukeyC)
## Loading required package: doBy
df <- read.table(textConnection("est    cult    r   resp
A1  B1  1   3.1
A1  B1  2   3.3
A1  B1  3   3.3
A1  B1  4   3.9
A1  B2  1   3.2
A1  B2  2   3.1
A1  B2  3   3.3
A1  B2  4   3.6
A1  B3  1   3.2
A1  B3  2   3
A1  B3  3   3.2
A1  B3  4   3.5
A1  B4  1   3.4
A1  B4  2   3.6
A1  B4  3   3.2
A1  B4  4   3.8
A1  B5  1   3
A1  B5  2   3.1
A1  B5  3   3.1
A1  B5  4   3.2
A2  B1  1   3.8
A2  B1  2   3
A2  B1  3   3.9
A2  B1  4   3.6
A2  B2  1   3.8
A2  B2  2   4.3
A2  B2  3   3.9
A2  B2  4   3.6
A2  B3  1   3.6
A2  B3  2   3.1
A2  B3  3   3.5
A2  B3  4   2.9
A2  B4  1   4.7
A2  B4  2   4
A2  B4  3   4.4
A2  B4  4   4.4
A2  B5  1   4.4
A2  B5  2   4.1
A2  B5  3   3.9
A2  B5  4   4
A3  B1  1   2.4
A3  B1  2   2.6
A3  B1  3   2.5
A3  B1  4   2.9
A3  B2  1   2.6
A3  B2  2   2.9
A3  B2  3   2.4
A3  B2  4   2.8
A3  B3  1   2.4
A3  B3  2   2.3
A3  B3  3   2.4
A3  B3  4   2.6
A3  B4  1   3.6
A3  B4  2   4.2
A3  B4  3   3.6
A3  B4  4   3.5
A3  B5  1   3.1
A3  B5  2   2.9
A3  B5  3   3.3
A3  B5  4   3.6
A4  B1  1   2.1
A4  B1  2   2.5
A4  B1  3   2.6
A4  B1  4   2.8
A4  B2  1   2.5
A4  B2  2   3.2
A4  B2  3   2.9
A4  B2  4   3.1
A4  B3  1   2.1
A4  B3  2   2.5
A4  B3  3   2.9
A4  B3  4   2.6
A4  B4  1   4.3
A4  B4  2   4
A4  B4  3   3.6
A4  B4  4   4.2
A4  B5  1   3.3
A4  B5  2   3.9
A4  B5  3   3.4
A4  B5  4   3.7
A5  B1  1   1.2
A5  B1  2   1.5
A5  B1  3   1.6
A5  B1  4   1.7
A5  B2  1   1.8
A5  B2  2   2.4
A5  B2  3   1.7
A5  B2  4   2.4
A5  B3  1   1.9
A5  B3  2   1.6
A5  B3  3   2
A5  B3  4   2.2
A5  B4  1   3.5
A5  B4  2   3.2
A5  B4  3   3.7
A5  B4  4   3.3
A5  B5  1   3.3
A5  B5  2   2.9
A5  B5  3   3.1
A5  B5  4   3
A6  B1  1   1.2
A6  B1  2   1.7
A6  B1  3   1.1
A6  B1  4   1.3
A6  B2  1   1.3
A6  B2  2   1.9
A6  B2  3   1.5
A6  B2  4   2.1
A6  B3  1   1.4
A6  B3  2   1.9
A6  B3  3   1.4
A6  B3  4   1.5
A6  B4  1   2.9
A6  B4  2   2.8
A6  B4  3   3.1
A6  B4  4   2.4
A6  B5  1   2.5
A6  B5  2   2.9
A6  B5  3   2.2
A6  B5  4   2.9
"), header = TRUE)

df
##     est cult r resp
## 1    A1   B1 1  3.1
## 2    A1   B1 2  3.3
## 3    A1   B1 3  3.3
## 4    A1   B1 4  3.9
## 5    A1   B2 1  3.2
## 6    A1   B2 2  3.1
## 7    A1   B2 3  3.3
## 8    A1   B2 4  3.6
## 9    A1   B3 1  3.2
## 10   A1   B3 2  3.0
## 11   A1   B3 3  3.2
## 12   A1   B3 4  3.5
## 13   A1   B4 1  3.4
## 14   A1   B4 2  3.6
## 15   A1   B4 3  3.2
## 16   A1   B4 4  3.8
## 17   A1   B5 1  3.0
## 18   A1   B5 2  3.1
## 19   A1   B5 3  3.1
## 20   A1   B5 4  3.2
## 21   A2   B1 1  3.8
## 22   A2   B1 2  3.0
## 23   A2   B1 3  3.9
## 24   A2   B1 4  3.6
## 25   A2   B2 1  3.8
## 26   A2   B2 2  4.3
## 27   A2   B2 3  3.9
## 28   A2   B2 4  3.6
## 29   A2   B3 1  3.6
## 30   A2   B3 2  3.1
## 31   A2   B3 3  3.5
## 32   A2   B3 4  2.9
## 33   A2   B4 1  4.7
## 34   A2   B4 2  4.0
## 35   A2   B4 3  4.4
## 36   A2   B4 4  4.4
## 37   A2   B5 1  4.4
## 38   A2   B5 2  4.1
## 39   A2   B5 3  3.9
## 40   A2   B5 4  4.0
## 41   A3   B1 1  2.4
## 42   A3   B1 2  2.6
## 43   A3   B1 3  2.5
## 44   A3   B1 4  2.9
## 45   A3   B2 1  2.6
## 46   A3   B2 2  2.9
## 47   A3   B2 3  2.4
## 48   A3   B2 4  2.8
## 49   A3   B3 1  2.4
## 50   A3   B3 2  2.3
## 51   A3   B3 3  2.4
## 52   A3   B3 4  2.6
## 53   A3   B4 1  3.6
## 54   A3   B4 2  4.2
## 55   A3   B4 3  3.6
## 56   A3   B4 4  3.5
## 57   A3   B5 1  3.1
## 58   A3   B5 2  2.9
## 59   A3   B5 3  3.3
## 60   A3   B5 4  3.6
## 61   A4   B1 1  2.1
## 62   A4   B1 2  2.5
## 63   A4   B1 3  2.6
## 64   A4   B1 4  2.8
## 65   A4   B2 1  2.5
## 66   A4   B2 2  3.2
## 67   A4   B2 3  2.9
## 68   A4   B2 4  3.1
## 69   A4   B3 1  2.1
## 70   A4   B3 2  2.5
## 71   A4   B3 3  2.9
## 72   A4   B3 4  2.6
## 73   A4   B4 1  4.3
## 74   A4   B4 2  4.0
## 75   A4   B4 3  3.6
## 76   A4   B4 4  4.2
## 77   A4   B5 1  3.3
## 78   A4   B5 2  3.9
## 79   A4   B5 3  3.4
## 80   A4   B5 4  3.7
## 81   A5   B1 1  1.2
## 82   A5   B1 2  1.5
## 83   A5   B1 3  1.6
## 84   A5   B1 4  1.7
## 85   A5   B2 1  1.8
## 86   A5   B2 2  2.4
## 87   A5   B2 3  1.7
## 88   A5   B2 4  2.4
## 89   A5   B3 1  1.9
## 90   A5   B3 2  1.6
## 91   A5   B3 3  2.0
## 92   A5   B3 4  2.2
## 93   A5   B4 1  3.5
## 94   A5   B4 2  3.2
## 95   A5   B4 3  3.7
## 96   A5   B4 4  3.3
## 97   A5   B5 1  3.3
## 98   A5   B5 2  2.9
## 99   A5   B5 3  3.1
## 100  A5   B5 4  3.0
## 101  A6   B1 1  1.2
## 102  A6   B1 2  1.7
## 103  A6   B1 3  1.1
## 104  A6   B1 4  1.3
## 105  A6   B2 1  1.3
## 106  A6   B2 2  1.9
## 107  A6   B2 3  1.5
## 108  A6   B2 4  2.1
## 109  A6   B3 1  1.4
## 110  A6   B3 2  1.9
## 111  A6   B3 3  1.4
## 112  A6   B3 4  1.5
## 113  A6   B4 1  2.9
## 114  A6   B4 2  2.8
## 115  A6   B4 3  3.1
## 116  A6   B4 4  2.4
## 117  A6   B5 1  2.5
## 118  A6   B5 2  2.9
## 119  A6   B5 3  2.2
## 120  A6   B5 4  2.9
str(df)
## 'data.frame':    120 obs. of  4 variables:
##  $ est : Factor w/ 6 levels "A1","A2","A3",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ cult: Factor w/ 5 levels "B1","B2","B3",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ r   : int  1 2 3 4 1 2 3 4 1 2 ...
##  $ resp: num  3.1 3.3 3.3 3.9 3.2 3.1 3.3 3.6 3.2 3 ...
df$r <- as.factor(df$r)

av <- aov(resp ~ r +  est * cult + Error(r / est ), data = df)
summary(av)
## 
## Error: r
##   Df Sum Sq Mean Sq
## r  3 0.5737  0.1912
## 
## Error: r:est
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## est        5  43.12   8.624    70.1 7.31e-10 ***
## Residuals 15   1.85   0.123                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Error: Within
##           Df Sum Sq Mean Sq F value   Pr(>F)    
## cult       4 25.312   6.328  99.785  < 2e-16 ***
## est:cult  20  7.562   0.378   5.962 7.86e-09 ***
## Residuals 72  4.566   0.063                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cv(av)
## cv(a) cv(b) 
## 11.96  8.59
tk1 <- TukeyC(av,which = 'est', error="Within")
tk1[["out"]][["Result"]]
##    Means G1 G2 G3 G4 G5
## A2  3.85  a            
## A1  3.31     b         
## A4  3.11     b  c      
## A3  2.93        c      
## A5  2.40           d   
## A6  2.00              e
tk2 <- TukeyC(av, which = 'cult', error="Within")
tk2[["out"]][["Result"]] 
##    Means G1 G2 G3 G4
## B4  3.64  a         
## B5  3.28     b      
## B2  2.76        c   
## B3  2.49           d
## B1  2.48           d
tk3 <- TukeyC(av, which = 'est:cult', error="Within", fl1=1)
tk3[["out"]][["Result"]] 
##       Means G1
## A1/B4  3.50  a
## A1/B1  3.40  a
## A1/B2  3.30  a
## A1/B3  3.23  a
## A1/B5  3.10  a
tk4 <- TukeyC(av, which = 'est:cult', error="Within", fl1=2)
tk4[["out"]][["Result"]] 
##       Means G1 G2 G3
## A2/B4  4.38  a      
## A2/B5  4.10  a      
## A2/B2  3.90  a  b   
## A2/B1  3.58     b  c
## A2/B3  3.27        c
tk5 <- TukeyC(av, which = 'est:cult', error="Within", fl1=3)
tk5[["out"]][["Result"]] 
##       Means G1 G2 G3
## A3/B4  3.73  a      
## A3/B5  3.23     b   
## A3/B2  2.67        c
## A3/B1  2.60        c
## A3/B3  2.42        c
tk6 <- TukeyC(av, which = 'est:cult', error="Within", fl1=4)
tk6[["out"]][["Result"]] 
##       Means G1 G2
## A4/B4  4.03  a   
## A4/B5  3.58  a   
## A4/B2  2.92     b
## A4/B3  2.52     b
## A4/B1  2.50     b
tk7 <- TukeyC(av, which = 'est:cult', error="Within", fl1=5)
tk7[["out"]][["Result"]] 
##       Means G1 G2 G3
## A5/B4  3.42  a      
## A5/B5  3.08  a      
## A5/B2  2.08     b   
## A5/B3  1.92     b  c
## A5/B1  1.50        c
tk8 <- TukeyC(av, which = 'est:cult', error="Within", fl1=6)
tk8[["out"]][["Result"]] 
##       Means G1 G2
## A6/B4  2.80  a   
## A6/B5  2.62  a   
## A6/B2  1.70     b
## A6/B3  1.55     b
## A6/B1  1.32     b