library(tidyverse)
library(gtsummary)
library(readxl)
# Load data
sino_yoga <- read_excel("Sino Yoga Project - Copy_March 17, 2026_17.55.xlsx",
skip = 1)
# Remove first two metadata rows
sino_yoga <- sino_yoga[-c(1,2), ]
# Recode variables
sino_yoga_clean <- sino_yoga |>
rename(
gender = `What is your gender?`,
website_visit = `After watching a yoga instructor's YouTube video, how likely are you to visit their website to learn more about their courses or services?`
) |>
filter(!is.na(gender), !is.na(website_visit),
gender != "{\"ImportId\":\"QID9\"}",
website_visit != "{\"ImportId\":\"QID34\"}") |>
mutate(
gender = case_when(
gender == "1.0" ~ "Male",
gender == "2.0" ~ "Female",
gender == "3.0" ~ "Non-binary",
gender == "4.0" ~ "Prefer not to say",
TRUE ~ NA_character_
),
website_visit = case_when(
website_visit == "17.0" ~ "1 - Very Unlikely",
website_visit == "18.0" ~ "2 - Unlikely",
website_visit == "19.0" ~ "3 - Neutral",
website_visit == "20.0" ~ "4 - Likely",
website_visit == "21.0" ~ "5 - Very Likely",
TRUE ~ NA_character_
),
website_visit = factor(website_visit, levels = c(
"1 - Very Unlikely", "2 - Unlikely", "3 - Neutral",
"4 - Likely", "5 - Very Likely"))
) |>
filter(!is.na(gender), !is.na(website_visit))
# Cross-tabulation
sino_yoga_clean |>
tbl_cross(
row = website_visit,
col = gender,
percent = "column"
) |>
add_p() |>
bold_labels()
gender
|
Total | p-value1 | |||
|---|---|---|---|---|---|
| Female | Male | Non-binary | |||
| website_visit | >0.9 | ||||
| 1 - Very Unlikely | 3 (6.5%) | 0 (0%) | 0 (0%) | 3 (6.0%) | |
| 2 - Unlikely | 10 (22%) | 0 (0%) | 0 (0%) | 10 (20%) | |
| 3 - Neutral | 10 (22%) | 1 (33%) | 0 (0%) | 11 (22%) | |
| 4 - Likely | 17 (37%) | 2 (67%) | 1 (100%) | 20 (40%) | |
| 5 - Very Likely | 6 (13%) | 0 (0%) | 0 (0%) | 6 (12%) | |
| Total | 46 (100%) | 3 (100%) | 1 (100%) | 50 (100%) | |
| 1 Fisher’s exact test | |||||