if (!require(“dplyr”)) install.packages(“dplyr”) if (!require(“ggplot2”)) install.packages(“ggplot2”) if (!require(“gt”)) install.packages(“gt”) if (!require(“gtExtras”)) install.packages(“gtExtras”)
library(dplyr) library(ggplot2) library(gt) library(gtExtras)
options(scipen = 999)
mydata <- read.csv(“SandwichAd.csv”)
mydata <- mydata %>% mutate( DV = Calories, # numeric dependent variable IV = Actor # grouping variable (factor or character) )
group_means <- mydata %>% group_by(IV) %>% summarise(mean_DV = mean(DV, na.rm = TRUE), .groups = “drop”)
Graphic <- ggplot(mydata, aes(x = DV)) + geom_histogram(binwidth = diff(range(mydata$DV, na.rm = TRUE)) / 30, color = “black”, fill = “#1f78b4”, alpha = 0.7) + # Add group-specific mean lines geom_vline(data = group_means, aes(xintercept = mean_DV), color = “red”, linetype = “dashed”, linewidth = 1) + facet_grid(IV ~ .) + # one histogram per group, stacked vertically labs( title = “DV Distributions by IV Group”, x = “Dependent Variable”, y = “Count” ) + theme_minimal()
Graphic
mydata %>% group_by(IV) %>% summarise( count = n(), mean = mean(DV, na.rm = TRUE), sd = sd(DV, na.rm = TRUE), min = min(DV, na.rm = TRUE), max = max(DV, na.rm = TRUE) )
mydata %>% group_by(IV) %>% summarise( W_statistic = shapiro.test(DV)\(statistic, p_value = shapiro.test(DV)\)p.value )
t_res <- t.test(DV ~ IV, data = mydata, var.equal = FALSE)
wilcox.test(mydata\(DV ~ mydata\)IV)
t_summary <- tibble( Group1 = levels(as.factor(mydata\(IV))[1], Group2 = levels(as.factor(mydata\)IV))[2], Mean1 = t_res\(estimate[1], Mean2 = t_res\)estimate[2], t = t_res\(statistic, df = t_res\)parameter, p = t_res\(p.value, CI_low = t_res\)conf.int[1], CI_high= t_res$conf.int[2] )
Table <- t_summary %>% gt() %>% # Round group means and CI to 2 decimals fmt_number(columns = c(Mean1, Mean2, CI_low, CI_high), decimals = 2) %>% # Round test statistics, df, and p-value to 3 decimals fmt_number(columns = c(t, df, p), decimals = 3) %>% tab_header( title = “Independent Samples t-Test Results”, subtitle = “Welch’s t-test (unequal variances assumed)” ) %>% cols_label( Group1 = “Group 1”, Group2 = “Group 2”, Mean1 = “Mean (Group 1)”, Mean2 = “Mean (Group 2)”, t = “t Statistic”, df = “Degrees of Freedom”, p = “p-value”, CI_low = “95% CI (Lower)”, CI_high= “95% CI (Upper)” )
Graphic
Table