setwd("F:/Research")
data <- read.csv("endo data.csv")

if (!requireNamespace("DescTools", quietly = TRUE)) {
  install.packages("DescTools")
}
library(DescTools)

variables <- c("Asec", "Asuccess", "Ateeth", "Astomach", "Acuff", 
               "Diff", "Alaryn", "Adiff", 
               "Bsec", "Bsuccess", "Bteeth", "Bstomach", "Bcuff", 
               "Blaryn", "Bdiff")								

data$Model <- factor(data$Model)

numeric_variables <- c("Asec", "Diff", "Alaryn", "Adiff", "Bsec", "Blaryn", "Bdiff")
percentage_variables <- c("Asuccess", "Ateeth", "Astomach", "Acuff", "Bsuccess", "Bteeth", "Bstomach", "Bcuff")

desc_stats_numeric <- aggregate(data[, numeric_variables], by = list(data$Model), FUN = function(x) c(Mean = mean(x), SD = sd(x)))
desc_stats_percentage <- lapply(percentage_variables, function(var) {
  percentages <- aggregate(data[[var]], by = list(data$Model), FUN = function(x) {
    percentages <- sum(x == 1) / length(x)
    percentages <- round(percentages * 100, 2)
    return(percentages)
  })
  names(percentages) <- c("Group", paste0(var, "_percentage"))
  return(percentages)
})

print("Numeric Variables:")
print(desc_stats_numeric)

print("Percentage Variables:")
print(do.call(cbind, desc_stats_percentage))

kruskal_results <- lapply(variables, function(var) {
  kruskal.test(as.formula(paste(var, "~ Model")), data = data)
})

names(kruskal_results) <- variables
for (i in seq_along(kruskal_results)) {
  cat("Variable:", names(kruskal_results)[i], "\n")
  print(kruskal_results[[i]])
}

if (!requireNamespace("FSA", quietly = TRUE)) {
  install.packages("FSA")
}
library(FSA)

posthoc_results <- lapply(names(kruskal_results), function(var_name) {
  dunnTest(data[[var_name]], g = data$Grade, method = "bonferroni")
})

for (i in seq_along(posthoc_results)) {
  cat("Variable:", names(posthoc_results)[i], "\n")
  print(posthoc_results[[i]])
}
