Code
library(grid)
library(tidyverse)
library(ggcorrplot)
library(ggpubr)
library(gt)
library(readxl)
library(devtools)
library(knitr)
library(corrr)
write_bib(file = "packages.bib")library(grid)
library(tidyverse)
library(ggcorrplot)
library(ggpubr)
library(gt)
library(readxl)
library(devtools)
library(knitr)
library(corrr)
write_bib(file = "packages.bib")mycorrr <-
  function (corr, method = c("square", "circle"), type = c("full", 
    "lower", "upper"), ggtheme = ggplot2::theme_minimal, title = "", 
    show.legend = TRUE, legend.title = "Corr", show.diag = NULL, 
    colors = c("blue", "white", "red"), outline.color = "gray", 
    hc.order = FALSE, hc.method = "complete", lab = FALSE, lab_col = "black", 
    lab_size = 4, p.mat = NULL, sig.level = 0.05, insig = c("pch", 
        "blank"), pch = 4, pch.col = "black", pch.cex = 5, tl.cex = 12, 
    tl.col = "black", tl.srt = 45, digits = 2, as.is = FALSE)
  {
    type <- match.arg(type)
    method <- match.arg(method)
    insig <- match.arg(insig)
    if (is.null(show.diag)) {
        if (type == "full") {
            show.diag <- TRUE
        }
        else {
            show.diag <- FALSE
        }
    }
    if (inherits(corr, "cor_mat")) {
        cor.mat <- corr
        corr <- .tibble_to_matrix(cor.mat)
        p.mat <- .tibble_to_matrix(attr(cor.mat, "pvalue"))
    }
    if (!is.matrix(corr) & !is.data.frame(corr)) {
        stop("Need a matrix or data frame!")
    }
    corr <- as.matrix(corr)
    corr <- base::round(x = corr, digits = digits)
    if (hc.order) {
        ord <- .hc_cormat_order(corr, hc.method = hc.method)
        corr <- corr[ord, ord]
        if (!is.null(p.mat)) {
            p.mat <- p.mat[ord, ord]
            p.mat <- base::round(x = p.mat, digits = digits)
        }
    }
    if (!show.diag) {
        corr <- .remove_diag(corr)
        p.mat <- .remove_diag(p.mat)
    }
    if (type == "lower") {
        corr <- .get_lower_tri(corr, show.diag)
        p.mat <- .get_lower_tri(p.mat, show.diag)
    }
    else if (type == "upper") {
        corr <- .get_upper_tri(corr, show.diag)
        p.mat <- .get_upper_tri(p.mat, show.diag)
    }
    corr <- reshape2::melt(corr, na.rm = TRUE, as.is = as.is)
    colnames(corr) <- c("Var1", "Var2", "value")
    corr$pvalue <- rep(NA, nrow(corr))
    corr$signif <- rep(NA, nrow(corr))
    if (!is.null(p.mat)) {
        p.mat <- reshape2::melt(p.mat, na.rm = TRUE)
        corr$coef <- corr$value
        corr$pvalue <- p.mat$value
        corr$signif <- as.numeric(p.mat$value <= sig.level)
        p.mat <- subset(p.mat, p.mat$value > sig.level)
        if (insig == "blank") {
            corr$value <- corr$value * corr$signif
        }
    }
    corr$abs_corr <- abs(corr$value) * 10
    p <- ggplot2::ggplot(data = corr, mapping = ggplot2::aes_string(x = "Var1", 
        y = "Var2", fill = "value"))
    if (method == "square") {
        p <- p + ggplot2::geom_tile(color = outline.color)
    }
    else if (method == "circle") {
        p <- p + ggplot2::geom_point(color = outline.color, shape = 21, 
            ggplot2::aes_string(size = "abs_corr")) + ggplot2::scale_size(range = c(4, 
            10)) + ggplot2::guides(size = "none")
    }
    p <- p + ggplot2::scale_fill_gradient2(low = colors[1], high = colors[3], 
        mid = colors[2], midpoint = 0, limit = c(-1, 1), space = "Lab", 
        name = legend.title)
    if (class(ggtheme)[[1]] == "function") {
        p <- p + ggtheme()
    }
    else if (class(ggtheme)[[1]] == "theme") {
        p <- p + ggtheme
    }
    p <- p + ggplot2::theme(axis.text.x = ggplot2::element_text(angle = tl.srt, 
        vjust = 1, size = tl.cex, hjust = 1), axis.text.y = ggplot2::element_text(size = tl.cex)) + 
        ggplot2::coord_fixed()
    label <- round(x = corr[, "value"], digits = digits) %>%
      str_replace_all("\\b0(\\.\\d+)", "\\1") %>%
      str_replace_all("(\\.\\d)\\b", "\\10")
    if (!is.null(p.mat) & insig == "blank") {
        ns <- corr$pvalue > sig.level
        if (sum(ns) > 0) 
            label[ns] <- " "
    }
    if (lab) {
        p <- p + ggplot2::geom_text(mapping = ggplot2::aes_string(x = "Var1", 
            y = "Var2"), label = label, color = lab_col, size = lab_size)
    }
    if (!is.null(p.mat) & insig == "pch") {
        p <- p + ggplot2::geom_point(data = p.mat, mapping = ggplot2::aes_string(x = "Var1", 
            y = "Var2"), shape = pch, size = pch.cex, color = pch.col)
    }
    if (title != "") {
        p <- p + ggplot2::ggtitle(title)
    }
    if (!show.legend) {
        p <- p + ggplot2::theme(legend.position = "none")
    }
    p <- p + .no_panel()
    p
  }
.no_panel <- function() {
  ggplot2::theme(
    axis.title.x = ggplot2::element_blank(),
    axis.title.y = ggplot2::element_blank()
  )
}DATA <- read_xlsx("SURVEY_DATA.xlsx")
DATA <-
  DATA %>%
  select(-where( ~ all(is.na(.)))) %>%
  filter(`teilnahme[teilnahme]` == "Y")
DATA <-
  DATA[9:81] %>%
  mutate(Nitem_CHECK = rowSums(!is.na(.))) %>%
  filter(Nitem_CHECK > 0) %>%
  filter(AB7 == 0) %>% # exclude special education schools
  mutate(AB12 = (AB12 - 6) %>% abs()) %>%
  rename_with(~ stringr::str_replace_all(., "\\[", "_") %>%
                 stringr::str_replace_all(., "\\]", "")) %>%
  mutate(across(
    c("AB6_1", "AB6_2", "AB6_3", "AB7", "AB8_1",
      "AB8_3", "AB8_4", "AB8_5", "AB8_6", "AB8_7",
      "AB8_8", "AB8_9", "AB9_1", "AB9_2", "AB9_3",
      "AB9_4", "AB9_5"),
    ~ ifelse(. == "Y", 1, 0))) %>%
  mutate(across(
    c("AB6_1", "AB6_2", "AB6_3", "AB7", "AB8_1",
      "AB8_3", "AB8_4", "AB8_5", "AB8_6", "AB8_7",
      "AB8_8", "AB8_9", "AB9_1", "AB9_2", "AB9_3",
      "AB9_4", "AB9_5"),
    ~ ifelse(is.na(.), 0, .)))item_ID <-
  c(
    "item_1", "item_2", "item_3", "item_4", "item_5", "item_6", "item_7", "item_8",
    "item_9", "item_10", "item_11", "item_12", "item_13", "item_14", "item_15",   
    "item_16", "item_17", "item_18", "item_19", "item_20", "item_21", "item_22",
    "item_23", "item_24", "item_25", "item_26", "item_27", "item_28", "item_29",
    "item_30"
  )DAT <-
  DATA[
    c(paste0("SE",
             c(1:8,14,9,15,12,13,10:11,16:20)),
      paste0("VA",
             c(1:5,10,6:9)))] %>% 
  rename_with(~ item_ID)
DAT_COR <- cbind(DAT, DATA[31:73])DAT_COR <-
  DAT_COR %>%
  rowwise() %>%
  mutate(
    `NAI-ST` = mean(c(item_1, item_2, abs(item_3 - 5), abs(item_4 - 5)), na.rm = TRUE),
    `IRP-ST` = mean(c(item_5, item_6), na.rm = TRUE),
    `NAI-PA` = mean(c(item_16, abs(item_17 - 5), abs(item_18 - 5)), na.rm = TRUE),
    `IRP-PA` = mean(c(item_19, item_20), na.rm = TRUE),
    CSFAS = mean(c(item_21, item_22, item_23, item_24), na.rm = TRUE),
    CCMESS = mean(c(item_25, item_27, item_28, item_29, item_30), na.rm = TRUE),
    WA1 = (WA1 == 2) %>% as.numeric(), # "Notarzt nicht immer notwendig",
    WA2 = (WA2 == 2) %>% as.numeric(), # "keinen Gegenstand in den Mund",
    WA3 = (WA3 == 2) %>% as.numeric(), # "Mund nicht mit physischer Kraft öffnen",
    WA4 = (WA4 == 2) %>% as.numeric(), # "nicht festhalten",
    #WA5 = (WA5 == 2) %>% as.numeric(), # "nicht wachrütteln",
    WA6 = (WA6 == 2) %>% as.numeric(), # "nicht mit Wasser bespritzen",
    WA7 = (WA7 == 2) %>% as.numeric(), # "Notfallmedikament geben",
    #WA8 = (WA8 == 2) %>% as.numeric(), # "keine Form von geistiger Beeinträchtigung",
    #WA9 = (WA9 == 3) %>% as.numeric(), # "Hochbegabung",
    #WA10 = (WA10 == 3) %>% as.numeric(), # "Lernschwächen",
    #WA11 = (WA11 == 3) %>% as.numeric(), # "Aggression",
    #WA12 = (WA12 == 3) %>% as.numeric(), # "Sozialekompetenzen",
    WA13 = (WA13 == 2) %>% as.numeric(), # "Sport kein Auslöser",
    WA14 = (WA14 == 2) %>% as.numeric(), # "Ballsport kein Verletzungsrisiko"
  ) %>%
  mutate(SED_INC = case_when(AB10 == 0 & AB11 == 0 ~ 0,
                             AB10 == 1 & AB11 == 0 ~ 1,
                             AB10 == 0 & AB11 == 1 ~ 1,
                             AB10 == 1 & is.na(AB11) ~ 1,
                             is.na(AB10) & AB11 == 1 ~ 1,
                             AB10 == 1 & AB11 == 1 ~ 1,
                             is.na(AB10) & is.na(AB11) ~ NA,
                             AB10 == 0 & is.na(AB11) ~ NA,
                             is.na(AB10) & AB11 == 0 ~ NA)) %>% 
  select(c("WA1", "WA2", "WA3", "WA4", "WA6", "WA7",
           "WA13", "WA14",
           "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6_1",
           "AB9_1", "AB9_2", "AB9_3",
           "AB9_4", "SED_INC", "AB12", "AB13", "AB14",
           "AB15", "CCMESS", "CSFAS", "IRP-PA", "NAI-PA", "IRP-ST", "NAI-ST"))COR <-
  DAT_COR %>%
  correlate() %>% 
  focus(!c(CCMESS, CSFAS, `IRP-PA`, `NAI-PA`, `IRP-ST`, `NAI-ST`)) %>%
  as.data.frame()
rownames(COR) <- c("CCMESS", "CSFAS", "IRP-PA", "NAI-PA", "IRP-ST", "NAI-ST")
colnames(COR) <- 
  c("term",
    "seizure: emergency medical treatment not always necessary",
    "during seizure: do not put anything in the mouth",
    "during seizure: mouth should not be opened with physical force",
    "during seizure: student should not be held down",
    "seizure can not be stopped by splashing with cool water",
    "teachers are allowed to administer emergency medication on their own", 
    "physical activity and exertion are not considered to be major triggers for seizures",
    "ball sports: risk of injury is not significantly higher (compared to non-sport activities)", 
  "prior knowledge about epilepsy (self-rating)",
  "currently teaching students with epilepsy",
  "previously taught students with epilepsy",
  "witnessed a student having an epileptic seizure",
  "witnessed a person having an epileptic seizure",
  "have or have had regular contact with people with epilepsy",
  "elementary education teacher",
  "school subject: German", 
  "school subject: math",
  "school subject: natural science",
  "school subject: physical education",
  "teacher training in special and/or inclusive education",
  "attitude towards inclusive education",
  "work experience as a teacher in years",
  "age in years",
  "sex: female")
FIG <-
  COR %>%
  rev() %>%
  arrange(-row_number()) %>%
  mutate(term = NULL) %>%
  mycorrr(lab = T, outline.color = "white") +
  theme(legend.title = element_blank()) +
  theme(legend.position = "top")
annotate_figure(FIG,
bottom = text_grob(
"NAI-ST: Negative affect and insecurity (school trips)
NAI-PA: Negative affect and insecurity (physical activities)
IRP-ST: Intention to restrict participation (school trips)
IRP-PA: Intention to restrict participation (physical activities)
CSFAS: Confidence in seizure first aid skills
CCMESS: Confidence in classroom management and emotional support skills",
  size = 10, x = 0.41, hjust = 0),
right = textGrob(label =
              c("knowledge:\nseizure first aid & physical activity",
                "|\n|",
              "prior\nknowledge & experience",
              "|\n|",
              "professional background &\nsociodemographic characteristics"),
    x = c(-1.2, -1.2, -1.2, -1.2, -1.2),  # Adjust these values as needed
    y = c(0.8, 0.676,  0.588, 0.498, 0.35),  # Adjust these values as needed
    rot = 270,
    gp = gpar(fontsize = 10),
    just = "center"))COR <-
  DAT_COR %>%
  select(!c(CCMESS, CSFAS, `IRP-PA`, `NAI-PA`, `IRP-ST`, `NAI-ST`)) %>%
  correlate() %>% 
  focus(c("AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6_1", 
         "AB9_1", "AB9_2", "AB9_3", "AB9_4", "SED_INC", "AB12", 
         "AB13", "AB14", "AB15")) %>%
  as.data.frame()
rownames(COR) <- c("seizure: emergency medical treatment not always necessary",
    "during seizure: do not put anything in the mouth",
    "during seizure: mouth should not be opened with physical force",
    "during seizure: student should not be held down",
    "seizure can not be stopped by splashing with cool water",
    "teachers are allowed to administer emergency medication on their own", 
    "physical activity and exertion are not considered to be major triggers for seizures",
    "ball sports: risk of injury is not significantly higher (compared to non-sport activities)")
colnames(COR) <- 
  c("term",
  "prior knowledge about epilepsy (self-rating)",
  "currently teaching students with epilepsy",
  "previously taught students with epilepsy",
  "witnessed a student having an epileptic seizure",
  "witnessed a person having an epileptic seizure",
  "have or have had regular contact with people with epilepsy",
  "elementary education teacher",
  "school subject: German", 
  "school subject: math",
  "school subject: natural science",
  "school subject: physical education",
  "teacher training in special and/or inclusive education",
  "attitude towards inclusive education",
  "work experience as a teacher in years",
  "age in years",
  "sex: female")
FIG <-
  COR %>%
  rev() %>%
  #arrange(-row_number()) %>%
  mutate(term = NULL) %>%
  mycorrr(lab = T, outline.color = "white") +
  theme(legend.title = element_blank()) +
  theme(legend.position = "top")
annotate_figure(FIG,
    right = textGrob(label =
              c("prior\nknowledge & experience",
              "|\n|",
              "professional background &\nsociodemographic characteristics"),
    x = c(-2.9, -2.9, -2.9), # Adjust these values as needed
    y = c(0.833, 0.747,  0.605), #0.498, 0.35),  # Adjust these values as needed
    rot = 270,
    gp = gpar(fontsize = 10),
    just = "center"))COR <-
  DAT_COR %>%
  select(!c(CCMESS, CSFAS, `IRP-PA`, `NAI-PA`, `IRP-ST`, `NAI-ST`) &
           c("AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6_1", 
         "AB9_1", "AB9_2", "AB9_3", "AB9_4", "SED_INC", "AB12", 
         "AB13", "AB14", "AB15")) %>%
  correlate() %>% 
  #focus(c("AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6_1", 
  #       "AB9_1", "AB9_2", "AB9_3", "AB9_4", "SED_INC", "AB12", 
  #       "AB13", "AB14", "AB15")) %>%
  as.data.frame()
rownames(COR) <-
  c("prior knowledge about epilepsy (self-rating)",
  "currently teaching students with epilepsy",
  "previously taught students with epilepsy",
  "witnessed a student having an epileptic seizure",
  "witnessed a person having an epileptic seizure",
  "have or have had regular contact with people with epilepsy",
  "elementary education teacher",
  "school subject: German", 
  "school subject: math",
  "school subject: natural science",
  "school subject: physical education",
  "teacher training in special and/or inclusive education",
  "attitude towards inclusive education",
  "work experience as a teacher in years",
  "age in years",
  "sex: female")
colnames(COR) <- 
  c("term",
  "prior knowledge about epilepsy (self-rating)",
  "currently teaching students with epilepsy",
  "previously taught students with epilepsy",
  "witnessed a student having an epileptic seizure",
  "witnessed a person having an epileptic seizure",
  "have or have had regular contact with people with epilepsy",
  "elementary education teacher",
  "school subject: German", 
  "school subject: math",
  "school subject: natural science",
  "school subject: physical education",
  "teacher training in special and/or inclusive education",
  "attitude towards inclusive education",
  "work experience as a teacher in years",
  "age in years",
  "sex: female")
COR %>%
  rev() %>%
  #arrange(-row_number()) %>%
  mutate(term = NULL) %>%
  mycorrr(lab = T, outline.color = "white") +
  theme(legend.title = element_blank()) +
  theme(legend.position = "top")table(DATA$AB6_1, DATA$AB1,
      dnn = c("elementary",
              "currently teaching students with epilepsy")) %>%
  prop.table(1) %>% round(2)          currently teaching students with epilepsy
elementary    0    1
         0 0.90 0.10
         1 0.92 0.08
table(DATA$AB6_1, DATA$AB2,
      dnn = c("elementary",
              "previously taught students with epilepsy")) %>%
  prop.table(1) %>% round(2)          previously taught students with epilepsy
elementary    0    1
         0 0.63 0.37
         1 0.66 0.34
table(DATA$AB6_1, DATA$AB3,
      dnn = c("elementary",
              "witnessed a student having an epileptic seizure")) %>%
  prop.table(1) %>% round(2)          witnessed a student having an epileptic seizure
elementary    0    1
         0 0.83 0.17
         1 0.83 0.17
table(DATA$AB6_1, DATA$AB4,
      dnn = c("elementary",
              "witnessed a person having an epileptic seizure")) %>%
  prop.table(1) %>% round(2)          witnessed a person having an epileptic seizure
elementary    0    1
         0 0.53 0.47
         1 0.58 0.42
table(DATA$AB6_1, DATA$AB5,
      dnn = c("elementary",
              "have or have had regular contact with people with epilepsy")) %>%
  prop.table(1) %>% round(2)          have or have had regular contact with people with epilepsy
elementary    0    1
         0 0.80 0.20
         1 0.75 0.25
session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.4.2 (2024-10-31 ucrt)
##  os       Windows 11 x64 (build 22631)
##  system   x86_64, mingw32
##  ui       RTerm
##  language (EN)
##  collate  German_Germany.utf8
##  ctype    German_Germany.utf8
##  tz       Europe/Berlin
##  date     2024-11-21
##  pandoc   3.2 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  package     * version  date (UTC) lib source
##  abind         1.4-8    2024-09-12 [1] CRAN (R 4.4.1)
##  backports     1.5.0    2024-05-23 [1] CRAN (R 4.4.0)
##  broom         1.0.7    2024-09-26 [1] CRAN (R 4.4.2)
##  cachem        1.1.0    2024-05-16 [1] CRAN (R 4.4.2)
##  car           3.1-3    2024-09-27 [1] CRAN (R 4.4.2)
##  carData       3.0-5    2022-01-06 [1] CRAN (R 4.4.2)
##  cellranger    1.1.0    2016-07-27 [1] CRAN (R 4.4.2)
##  cli           3.6.3    2024-06-21 [1] CRAN (R 4.4.2)
##  colorspace    2.1-1    2024-07-26 [1] CRAN (R 4.4.2)
##  corrr       * 0.4.4    2022-08-16 [1] CRAN (R 4.4.2)
##  cowplot       1.1.3    2024-01-22 [1] CRAN (R 4.4.2)
##  devtools    * 2.4.5    2022-10-11 [1] CRAN (R 4.4.2)
##  digest        0.6.37   2024-08-19 [1] CRAN (R 4.4.2)
##  dplyr       * 1.1.4    2023-11-17 [1] CRAN (R 4.4.2)
##  ellipsis      0.3.2    2021-04-29 [1] CRAN (R 4.4.2)
##  evaluate      1.0.1    2024-10-10 [1] CRAN (R 4.4.2)
##  fansi         1.0.6    2023-12-08 [1] CRAN (R 4.4.2)
##  farver        2.1.2    2024-05-13 [1] CRAN (R 4.4.2)
##  fastmap       1.2.0    2024-05-15 [1] CRAN (R 4.4.2)
##  forcats     * 1.0.0    2023-01-29 [1] CRAN (R 4.4.2)
##  Formula       1.2-5    2023-02-24 [1] CRAN (R 4.4.0)
##  fs            1.6.5    2024-10-30 [1] CRAN (R 4.4.2)
##  generics      0.1.3    2022-07-05 [1] CRAN (R 4.4.2)
##  ggcorrplot  * 0.1.4.1  2023-09-05 [1] CRAN (R 4.4.2)
##  ggplot2     * 3.5.1    2024-04-23 [1] CRAN (R 4.4.2)
##  ggpubr      * 0.6.0    2023-02-10 [1] CRAN (R 4.4.2)
##  ggsignif      0.6.4    2022-10-13 [1] CRAN (R 4.4.2)
##  glue          1.8.0    2024-09-30 [1] CRAN (R 4.4.2)
##  gridExtra     2.3      2017-09-09 [1] CRAN (R 4.4.2)
##  gt          * 0.11.1   2024-10-04 [1] CRAN (R 4.4.2)
##  gtable        0.3.6    2024-10-25 [1] CRAN (R 4.4.2)
##  hms           1.1.3    2023-03-21 [1] CRAN (R 4.4.2)
##  htmltools     0.5.8.1  2024-04-04 [1] CRAN (R 4.4.2)
##  htmlwidgets   1.6.4    2023-12-06 [1] CRAN (R 4.4.2)
##  httpuv        1.6.15   2024-03-26 [1] CRAN (R 4.4.2)
##  jsonlite      1.8.9    2024-09-20 [1] CRAN (R 4.4.2)
##  knitr       * 1.49     2024-11-08 [1] CRAN (R 4.4.2)
##  labeling      0.4.3    2023-08-29 [1] CRAN (R 4.4.0)
##  later         1.3.2    2023-12-06 [1] CRAN (R 4.4.2)
##  lifecycle     1.0.4    2023-11-07 [1] CRAN (R 4.4.2)
##  lubridate   * 1.9.3    2023-09-27 [1] CRAN (R 4.4.2)
##  magrittr      2.0.3    2022-03-30 [1] CRAN (R 4.4.2)
##  memoise       2.0.1    2021-11-26 [1] CRAN (R 4.4.2)
##  mime          0.12     2021-09-28 [1] CRAN (R 4.4.0)
##  miniUI        0.1.1.1  2018-05-18 [1] CRAN (R 4.4.2)
##  munsell       0.5.1    2024-04-01 [1] CRAN (R 4.4.2)
##  pillar        1.9.0    2023-03-22 [1] CRAN (R 4.4.2)
##  pkgbuild      1.4.5    2024-10-28 [1] CRAN (R 4.4.2)
##  pkgconfig     2.0.3    2019-09-22 [1] CRAN (R 4.4.2)
##  pkgload       1.4.0    2024-06-28 [1] CRAN (R 4.4.2)
##  plyr          1.8.9    2023-10-02 [1] CRAN (R 4.4.2)
##  profvis       0.4.0    2024-09-20 [1] CRAN (R 4.4.2)
##  promises      1.3.0    2024-04-05 [1] CRAN (R 4.4.2)
##  purrr       * 1.0.2    2023-08-10 [1] CRAN (R 4.4.2)
##  R6            2.5.1    2021-08-19 [1] CRAN (R 4.4.2)
##  Rcpp          1.0.13-1 2024-11-02 [1] CRAN (R 4.4.2)
##  readr       * 2.1.5    2024-01-10 [1] CRAN (R 4.4.2)
##  readxl      * 1.4.3    2023-07-06 [1] CRAN (R 4.4.2)
##  remotes       2.5.0    2024-03-17 [1] CRAN (R 4.4.2)
##  reshape2      1.4.4    2020-04-09 [1] CRAN (R 4.4.2)
##  rlang         1.1.4    2024-06-04 [1] CRAN (R 4.4.2)
##  rmarkdown     2.29     2024-11-04 [1] CRAN (R 4.4.2)
##  rstatix       0.7.2    2023-02-01 [1] CRAN (R 4.4.2)
##  rstudioapi    0.17.1   2024-10-22 [1] CRAN (R 4.4.2)
##  scales        1.3.0    2023-11-28 [1] CRAN (R 4.4.2)
##  sessioninfo   1.2.2    2021-12-06 [1] CRAN (R 4.4.2)
##  shiny         1.9.1    2024-08-01 [1] CRAN (R 4.4.2)
##  stringi       1.8.4    2024-05-06 [1] CRAN (R 4.4.0)
##  stringr     * 1.5.1    2023-11-14 [1] CRAN (R 4.4.2)
##  tibble      * 3.2.1    2023-03-20 [1] CRAN (R 4.4.2)
##  tidyr       * 1.3.1    2024-01-24 [1] CRAN (R 4.4.2)
##  tidyselect    1.2.1    2024-03-11 [1] CRAN (R 4.4.2)
##  tidyverse   * 2.0.0    2023-02-22 [1] CRAN (R 4.4.2)
##  timechange    0.3.0    2024-01-18 [1] CRAN (R 4.4.2)
##  tzdb          0.4.0    2023-05-12 [1] CRAN (R 4.4.2)
##  urlchecker    1.0.1    2021-11-30 [1] CRAN (R 4.4.2)
##  usethis     * 3.0.0    2024-07-29 [1] CRAN (R 4.4.1)
##  utf8          1.2.4    2023-10-22 [1] CRAN (R 4.4.2)
##  vctrs         0.6.5    2023-12-01 [1] CRAN (R 4.4.2)
##  withr         3.0.2    2024-10-28 [1] CRAN (R 4.4.2)
##  xfun          0.49     2024-10-31 [1] CRAN (R 4.4.2)
##  xml2          1.3.6    2023-12-04 [1] CRAN (R 4.4.2)
##  xtable        1.8-4    2019-04-21 [1] CRAN (R 4.4.2)
##  yaml          2.3.10   2024-07-26 [1] CRAN (R 4.4.1)
## 
##  [1] C:/Users/Pawel Kulawiak/AppData/Local/Programs/R/R-4.4.2/library
## 
## ──────────────────────────────────────────────────────────────────────────────