## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(moderncor)

## ----check-desctool, eval = !requireNamespace("DescTools", quietly = TRUE), echo = FALSE----
# message("The DescTools package is not installed. Install it with: install.packages('DescTools')")

## ----basic, eval = requireNamespace("DescTools", quietly = TRUE)--------------
set.seed(42)
x <- factor(sample(c("A", "B", "C"), 100, replace = TRUE))
y <- factor(sample(c("X", "Y"), 100, replace = TRUE))

moderncor_cat(x, y, method = "cramers_v")

## ----available-methods-cat----------------------------------------------------
available_methods_cat()

## ----cramers-v, eval = requireNamespace("DescTools", quietly = TRUE)----------
moderncor_cat(x, y, method = "cramers_v")

## ----phi, eval = requireNamespace("DescTools", quietly = TRUE)----------------
x_bin <- factor(sample(c("Yes", "No"), 100, replace = TRUE))
y_bin <- factor(sample(c("Pass", "Fail"), 100, replace = TRUE))

moderncor_cat(x_bin, y_bin, method = "phi")

## ----contingency, eval = requireNamespace("DescTools", quietly = TRUE)--------
moderncor_cat(x, y, method = "contingency")

## ----tschuprow, eval = requireNamespace("DescTools", quietly = TRUE)----------
moderncor_cat(x, y, method = "tschuprow")

## ----gamma-data, eval = requireNamespace("DescTools", quietly = TRUE)---------
# Simulate ordinal survey data
set.seed(1)
quality  <- factor(sample(c("Low", "Medium", "High"), 100, replace = TRUE,
                           prob = c(0.3, 0.4, 0.3)),
                   levels = c("Low", "Medium", "High"), ordered = TRUE)
satisfaction <- factor(sample(c("Dissatisfied", "Neutral", "Satisfied"), 100,
                               replace = TRUE, prob = c(0.3, 0.4, 0.3)),
                       levels = c("Dissatisfied", "Neutral", "Satisfied"), ordered = TRUE)

moderncor_cat(quality, satisfaction, method = "gamma")

## ----somers-d, eval = requireNamespace("DescTools", quietly = TRUE)-----------
moderncor_cat(quality, satisfaction, method = "somers_d")

## ----somers-d-reversed, eval = requireNamespace("DescTools", quietly = TRUE)----
moderncor_cat(satisfaction, quality, method = "somers_d")

## ----matrix-input, eval = requireNamespace("DescTools", quietly = TRUE)-------
df <- data.frame(
  cyl   = factor(mtcars$cyl),
  gear  = factor(mtcars$gear),
  am    = factor(mtcars$am)
)

res_mat <- moderncor_cat(df, method = "cramers_v")
res_mat

## ----matrix-pvalue, eval = requireNamespace("DescTools", quietly = TRUE)------
res_mat$p.value

## ----as-data-frame, eval = requireNamespace("DescTools", quietly = TRUE)------
as.data.frame(res_mat)

## ----missing-values, eval = requireNamespace("DescTools", quietly = TRUE)-----
x_na <- factor(c("A", "B", NA, "A", "B", "C"))
y_na <- factor(c("X", "Y", "X", NA, "Y", "X"))

moderncor_cat(x_na, y_na, method = "cramers_v", use = "complete.obs")

