df = data.frame (
  year = c(24, 27, 26, 50, 48, 40, 59, 35, 29, 40, 39, 54, 56, 34, 29, 35, 31, 40, 45),
  type = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3)
)

df$type = factor(df$type, levels = c("1", "2", "3"), labels = c("1", "2", "3"))

kruskal.test(df$year ~ df$type)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  df$year by df$type
## Kruskal-Wallis chi-squared = 2.616, df = 2, p-value = 0.2704
#однофакторный дисперсионный анализ 
a.analysis = aov(year ~ type, data = df)
summary(a.analysis)
##             Df Sum Sq Mean Sq F value Pr(>F)
## type         2  344.1   172.1   1.649  0.223
## Residuals   16 1669.9   104.4
#####################################################################

data2 = data.frame (
  value = c(6, 10, 11, 9,15,18,14,16,8,13,12,10,19,20,13,17),
  type1 = c("смешной",   
            "смешной",   
            "смешной",   
            "смешной",   
            "смешной",   
            "смешной",   
            "смешной",   
            "смешной",   
            "серьезный", 
            "серьезный", 
            "серьезный", 
            "серьезный", 
            "серьезный", 
            "серьезный", 
            "серьезный", 
            "серьезный" ),
  type2 = c("рабочий",   
            "рабочий",
            "рабочий",   
            "рабочий" ,  
            "выходной",  
            "выходной",  
            "выходной" , 
            "выходной",  
            "рабочий" ,  
            "рабочий",   
            "рабочий" ,  
            "рабочий" ,  
            "выходной",  
            "выходной" , 
            "выходной" , 
            "выходной")
)

data2$type1 = factor(data2$type1, levels = c("смешной", "серьезный"), labels = c("смешной", "серьезный"))
data2$type2 = factor(data2$type2, levels = c("рабочий", "выходной"), labels = c("рабочий", "выходной"))

a.analysis2 = aov(value ~ type1 + type2 + type1:type2, data = data2)
summary(a.analysis2)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## type1        1  10.56   10.56   1.913 0.191801    
## type2        1 175.56  175.56  31.800 0.000109 ***
## type1:type2  1   0.06    0.06   0.011 0.917024    
## Residuals   12  66.25    5.52                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#############################################################

library(ggplot2)

ggplot(data = data2, aes(x = type2, y = value)) + 
  geom_boxplot(aes(fill = type1))

with(data2, interaction.plot(x.factor = type2,trace.factor = type1,response = value))