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$Grade <- factor(data$Grade)


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$Grade), 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$Grade), 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, "~ Grade")), 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]])
}
