library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl) # For reading Excel files
library(likert) # For Likert scale analysis
## Loading required package: xtable
## Warning: package 'xtable' was built under R version 4.3.3
##
## Attaching package: 'likert'
##
## The following object is masked from 'package:dplyr':
##
## recode
library(ggplot2)
library(waffle)
#Set Working directory
setwd("/Users/aminahanjum/Desktop/SURVEY DATA CLEANING SPRING 2025")
getwd()
## [1] "/Users/aminahanjum/Desktop/SURVEY DATA CLEANING SPRING 2025"
#Reading the Excel File
scarb_core <- read_excel("DUPLICATE OF SCARB CORE POST SURVEY 2025.xlsx")
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `Open-Ended Response` -> `Open-Ended Response...10`
## • `Open-Ended Response` -> `Open-Ended Response...11`
## • `Response` -> `Response...14`
## • `Response` -> `Response...15`
## • `Response` -> `Response...27`
## • `Response` -> `Response...28`
## • `Response` -> `Response...100`
## • `Open-Ended Response` -> `Open-Ended Response...127`
## • `Response` -> `Response...128`
## • `Response` -> `Response...133`
## • `Open-Ended Response` -> `Open-Ended Response...135`
## • `Response` -> `Response...136`
## • `Response` -> `Response...137`
## • `Open-Ended Response` -> `Open-Ended Response...138`
## • `Open-Ended Response` -> `Open-Ended Response...139`
# Convert Likert responses to numeric values
likert_mapping <- c(
"Very strongly agree" = 3,
"Strongly agree" = 2,
"Agree" = 1,
"Neutral (Neither Agree or Disagree)" = 0,
"Disagree" = -1,
"Strongly disagree" = -2,
"Very strongly disagree" = -3
)
# Apply mapping to Likert columns
scarb_core <- scarb_core %>%
mutate(across(
where(is.character),
~ as.numeric(likert_mapping[.x])
))
#replace empty cells with 0 = Neutral (Neither Agree or Disagree)
scarb_core <- scarb_core %>%
mutate(across(where(is.numeric), ~replace_na(.x, 0)) )
# For the internal teams/board members/program strategy
## THEME 1 : Academic Confidence:
### Academic confidence averages
academic_conf <- scarb_core %>%
summarise(
confident_student = mean(`I am a confident student.`, na.rm = TRUE),
ask_questions = mean(`I ask questions when I don't understand something.`, na.rm = TRUE),
learn_anything = mean(`I can learn anything regardless of how I am taught.`, na.rm = TRUE)
)
print(academic_conf)
## # A tibble: 1 × 3
## confident_student ask_questions learn_anything
## <dbl> <dbl> <dbl>
## 1 1.37 1.24 0.978
### Visualize academic confidence averages
### LIKERT SCORE
academic_conf_long <- academic_conf %>% pivot_longer(everything(), names_to = "Question", values_to = "Average")
ggplot(academic_conf_long, aes(x = Question, y = Average, fill = Question)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("confident_student" = "#DE00C3",
"ask_questions" = "#0000FF",
"learn_anything" = "#FFA0FF")) +
labs(title = "Academic Confidence Metrics", y = "Average Likert Score") +
theme_minimal() +
scale_y_continuous(limits = c(-3, 3)) +
coord_flip()

### PIE CHART
academic_conf_percent <- scarb_core %>%
summarise(
confident_student_pct = mean(`I am a confident student.` >= 1, na.rm = TRUE) * 100,
ask_questions_pct = mean(`I ask questions when I don't understand something.` >= 1, na.rm = TRUE) * 100,
learn_anything_pct = mean(`I can learn anything regardless of how I am taught.` >= 1, na.rm = TRUE) * 100
)
print(academic_conf_percent)
## # A tibble: 1 × 3
## confident_student_pct ask_questions_pct learn_anything_pct
## <dbl> <dbl> <dbl>
## 1 69.6 71.7 63.0
academic_pie_data <- data.frame(
Question = c("I am a confident student",
"I ask questions when I don't understand something",
"I can learn anything regardless of how I am taught"),
Agree = c(71.1, 73.3, 64.4),
Disagree = c(28.9, 26.7, 35.6)
) %>%
pivot_longer(cols = c(Agree, Disagree),
names_to = "Response",
values_to = "Percentage")
ggplot(academic_pie_data, aes(x = "", y = Percentage, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
facet_wrap(~ Question, labeller = label_wrap_gen(width = 20)) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold") +
labs(title = "Academic Confidence - Agreement Percentages",
fill = "Response") +
scale_fill_manual(values = c("Agree" = "#0000FF", "Disagree" = "#C7C7C7")) +
theme_void() +
theme(strip.text = element_text(size = 10))

## Theme 2 : Community Belonging
community_belonging <- scarb_core %>%
summarise(
sense_of_belonging = mean(`The program gives me a sense of belonging.`, na.rm = TRUE),
community_values_me = mean(`My community values me.`, na.rm = TRUE),
contribute_to_community = mean(`I contribute to my community.`, na.rm = TRUE)
)
print(community_belonging)
## # A tibble: 1 × 3
## sense_of_belonging community_values_me contribute_to_community
## <dbl> <dbl> <dbl>
## 1 0.130 0.783 1.07
### Visualize academic confidence averages
### LIKERT SCORE
community_belonging_long <- community_belonging %>% pivot_longer(everything(), names_to = "Question", values_to = "Average")
ggplot(community_belonging_long, aes(x = Question, y = Average, fill = Question)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("sense_of_belonging" = "#FFA0FF",
"community_values_me" = "#0000FF",
"contribute_to_community" = "#DE00C3")) +
labs(title = "Academic Confidence Metrics", y = "Average Likert Score") +
theme_minimal() +
scale_y_continuous(limits = c(-3, 3)) +
coord_flip()

### PIE CHART
community_belonging_percent <- scarb_core %>%
summarise(
sense_of_belonging_pct = mean(`The program gives me a sense of belonging.` >= 1, na.rm = TRUE) * 100,
community_values_me_pct = mean(`My community values me.` >= 1, na.rm = TRUE) * 100,
contribute_to_community_pct = mean(`I contribute to my community.` >= 1, na.rm = TRUE) * 100
)
print(community_belonging_percent)
## # A tibble: 1 × 3
## sense_of_belonging_pct community_values_me_pct contribute_to_community_pct
## <dbl> <dbl> <dbl>
## 1 41.3 54.3 58.7
community_pie_data <- data.frame(
Question = c("`The program gives me a sense of belonging.",
"My community values me.",
"I contribute to my community."),
Agree = c(42.2, 55.6, 60),
Disagree = c(57.8, 44.4, 40)
) %>%
pivot_longer(cols = c(Agree, Disagree),
names_to = "Response",
values_to = "Percentage")
ggplot(academic_pie_data, aes(x = "", y = Percentage, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
facet_wrap(~ Question, labeller = label_wrap_gen(width = 20)) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold") +
labs(title = "Community belonging - How Many students Agree they feel a sense of belonging in the Core Program?",
fill = "Response") +
scale_fill_manual(values = c("Agree" = "#0000FF", "Disagree" = "#C7C7C7")) +
theme_void() +
theme(strip.text = element_text(size = 10))

## THEME 3 : SOCIAL & EMOTIONAL GROWTH
social_emotional_growth <- scarb_core %>%
summarise(
good_about_myself = mean(`I feel good about myself.`, na.rm = TRUE),
not_afraid_of_mistakes = mean(`I am not afraid of making mistakes.`, na.rm = TRUE),
help_my_friends = mean(`I help my friends when they have a problem.`, na.rm = TRUE),
make_others_feel_better = mean(`I try to make others feel better.`, na.rm = TRUE)
)
print(social_emotional_growth)
## # A tibble: 1 × 4
## good_about_myself not_afraid_of_mistakes help_my_friends
## <dbl> <dbl> <dbl>
## 1 1.22 -0.0652 1.5
## # ℹ 1 more variable: make_others_feel_better <dbl>
social_emotional_growth_long <- social_emotional_growth %>% pivot_longer(everything(), names_to = "Question", values_to = "Average")
ggplot(social_emotional_growth_long, aes(x = Question, y = Average, fill = Question)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("good_about_myself" = "#FFA0FF",
"not_afraid_of_mistakes" = "#0000FF",
"help_my_friends" = "#DE00C3",
"make_others_feel_better" = "#FFD700")) +
labs(title = "Social & Emotional Growth", y = "Average Likert Score") +
theme_minimal() +
scale_y_continuous(limits = c(-3, 3)) +
coord_flip()

### PIE CHART
social_emotional_growth_percent <- scarb_core %>%
summarise(
good_about_myself_pct = mean(`I feel good about myself.` >= 1, na.rm = TRUE) * 100,
help_my_friends_pct = mean(`I help my friends when they have a problem.` >= 1, na.rm = TRUE) * 100,
make_others_feel_better_pct = mean(`I try to make others feel better.` >= 1, na.rm = TRUE) * 100,
not_afraid_of_mistake_pct = mean(`I am not afraid of making mistakes.` >= 1, na.rm = TRUE) * 100
)
print(social_emotional_growth_percent)
## # A tibble: 1 × 4
## good_about_myself_pct help_my_friends_pct make_others_feel_better_pct
## <dbl> <dbl> <dbl>
## 1 65.2 80.4 80.4
## # ℹ 1 more variable: not_afraid_of_mistake_pct <dbl>
social_emotional_growth_pie_data <- data.frame(
Question = c("I feel good about myself.",
"I am not afraid of making mistakes.",
"I help my friends when they have a problem.",
"I try to make others feel better."),
Agree = c(66.7, 82.2, 82.2, 40),
Disagree = c(33.3, 17.8, 17.8, 60)
) %>%
pivot_longer(cols = c(Agree, Disagree),
names_to = "Response",
values_to = "Percentage")
ggplot(social_emotional_growth_pie_data , aes(x = "", y = Percentage, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
facet_wrap(~ Question, labeller = label_wrap_gen(width = 20)) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold") +
labs(title = "How much Emotional and Social growth can be seen in the Core Program students? ",
fill = "Response") +
scale_fill_manual(values = c("Agree" = "#0000FF", "Disagree" = "#C7C7C7")) +
theme_void() +
theme(strip.text = element_text(size = 10))

### THEME 4: PROGRAM IMPACT
program_impact <- scarb_core %>%
summarise(
better_in_school = mean(`The program helps me do better in school.`, na.rm = TRUE),
favorite_part = mean(`The program is my favorite part of the day.`, na.rm = TRUE),
staff_care_about_me = mean(`The program staff care about me.`, na.rm = TRUE),
think_of_myself_positively = mean(`This experience made me think of myself more positively.`, na.rm = TRUE)
)
print(program_impact)
## # A tibble: 1 × 4
## better_in_school favorite_part staff_care_about_me think_of_myself_positively
## <dbl> <dbl> <dbl> <dbl>
## 1 -0.109 -1.04 0.761 0.109
program_impact_long <- program_impact %>% pivot_longer(everything(), names_to = "Question", values_to = "Average")
ggplot(program_impact_long, aes(x = Question, y = Average, fill = Question)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("better_in_school" = "#FFA0FF",
"favorite_part" = "#0000FF",
"staff_care_about_me" = "#DE00C3",
"think_of_myself_positively" = "#FFD700")) +
labs(title = "Program Impact", y = "Average Likert Score") +
theme_minimal() +
scale_y_continuous(limits = c(-3, 3)) +
coord_flip()

### PIE CHART
program_impact_percent <- scarb_core %>%
summarise(
better_in_school_pct = mean(`The program helps me do better in school.` >= 1, na.rm = TRUE) * 100,
favorite_part_pct = mean(`The program is my favorite part of the day.` >= 1, na.rm = TRUE) * 100,
staff_care_about_me_pct = mean(`The program staff care about me.` >= 1, na.rm = TRUE) * 100,
think_of_myself_positively_pct = mean(`This experience made me think of myself more positively.` >= 1, na.rm = TRUE) * 100
)
print(program_impact_percent)
## # A tibble: 1 × 4
## better_in_school_pct favorite_part_pct staff_care_about_me_pct
## <dbl> <dbl> <dbl>
## 1 26.1 19.6 50
## # ℹ 1 more variable: think_of_myself_positively_pct <dbl>
program_impact_pie_data <- data.frame(
Question = c("The program helps me do better in school.",
"The program is my favorite part of the day.",
"The program staff care about me.",
"This experience made me think of myself more positively."),
Agree = c(26.7, 20, 51.1, 33.3)
) %>%
mutate(Disagree = 100 - Agree) %>%
pivot_longer(cols = c(Agree, Disagree),
names_to = "Response",
values_to = "Percentage")
ggplot(program_impact_pie_data , aes(x = "", y = Percentage, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
facet_wrap(~ Question, labeller = label_wrap_gen(width = 20)) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold") +
labs(title = "How much impact did the Program have on Core students in school? ",
fill = "Response") +
scale_fill_manual(values = c("Agree" = "#0000FF", "Disagree" = "#C7C7C7")) +
theme_void() +
theme(strip.text = element_text(size = 10))

#THEME 5: Equity & Representation
# Average Likert scores
program_cultural_equity <- scarb_core %>%
summarise(
music_relevant_to_culture = mean(`The program teaches content including music we learn that is relevant to my culture.`, na.rm = TRUE),
value_my_culture = mean(`My teachers value my culture.`, na.rm = TRUE),
treat_students_equally = mean(`My teachers treat all students equally.`, na.rm = TRUE)
)
print(program_cultural_equity)
## # A tibble: 1 × 3
## music_relevant_to_culture value_my_culture treat_students_equally
## <dbl> <dbl> <dbl>
## 1 0 1.17 0.783
# Convert to long format for ggplot
program_cultural_equity_long <- program_cultural_equity %>%
pivot_longer(everything(), names_to = "Question", values_to = "Average")
# Bar chart
ggplot(program_cultural_equity_long, aes(x = Question, y = Average, fill = Question)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c(
"music_relevant_to_culture" = "#FFA0FF",
"value_my_culture" = "#0000FF",
"treat_students_equally" = "#DE00C3")) +
labs(title = "Cultural Relevance & Equity Metrics", y = "Average Likert Score") +
theme_minimal() +
scale_y_continuous(limits = c(-3, 3)) +
coord_flip()

#PIE CHART
program_cultural_equity_percent <- scarb_core %>%
summarise(
content_relevant_to_culture_pct = mean(`The program teaches content including music we learn that is relevant to my culture.` >= 1, na.rm = TRUE) * 100,
value_my_culture_pct = mean(`My teachers value my culture.` >= 1, na.rm = TRUE) * 100,
treat_students_equally_pct = mean(`My teachers treat all students equally.` >= 1, na.rm = TRUE) * 100
)
print(program_cultural_equity_percent)
## # A tibble: 1 × 3
## content_relevant_to_culture_pct value_my_culture_pct treat_students_equally_…¹
## <dbl> <dbl> <dbl>
## 1 32.6 58.7 52.2
## # ℹ abbreviated name: ¹​treat_students_equally_pct
program_cultural_equity_data <- data.frame(
Question = c("The program teaches content relevant to my culture.",
"My teachers value my culture.",
"My teachers treat all students equally."),
Agree = c(33.3, 60, 53.3)
) %>%
mutate(Disagree = 100 - Agree) %>%
pivot_longer(cols = c(Agree, Disagree),
names_to = "Response",
values_to = "Percentage")
ggplot(program_cultural_equity_data , aes(x = "", y = Percentage, fill = Response)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
facet_wrap(~ Question, labeller = label_wrap_gen(width = 20)) +
geom_text(aes(label = paste0(round(Percentage, 1), "%")),
position = position_stack(vjust = 0.5),
size = 4, color = "white", fontface = "bold") +
labs(title = "Equity and Representation in the Core Program in school? ",
fill = "Response") +
scale_fill_manual(values = c("Agree" = "#0000FF", "Disagree" = "#C7C7C7")) +
theme_void() +
theme(strip.text = element_text(size = 10))

# THEME 6 LEADERSHIP AND MOTIVATION
leadership_motivation <- scarb_core %>%
summarise(
leadership_skills_pct = mean(!is.na(`I have developed leadership skills that help me in school.`)) * 100,
motivated_pct = mean(!is.na(`I am more motivated to do better on things I care about.`)) * 100,
perseverance_pct = mean(!is.na(`I have learned not to give up when I am working on something that is hard.`)) * 100,
leadership_skills_n = sum(!is.na(`I have developed leadership skills that help me in school.`)),
motivated_n = sum(!is.na(`I am more motivated to do better on things I care about.`)),
perseverance_n = sum(!is.na(`I have learned not to give up when I am working on something that is hard.`)),
total_responses = n()
) %>%
pivot_longer(
cols = contains("_pct"),
names_to = "statement",
values_to = "percentage"
) %>%
mutate(
statement = case_when(
statement == "leadership_skills_pct" ~ "I developed leadership skills",
statement == "motivated_pct" ~ "I am more motivated to do better in school",
statement == "perseverance_pct" ~ "I have learned not to give up even when things are hard"
)
)
print(leadership_motivation)
## # A tibble: 3 × 6
## leadership_skills_n motivated_n perseverance_n total_responses statement
## <int> <int> <int> <int> <chr>
## 1 46 46 46 46 I developed le…
## 2 46 46 46 46 I am more moti…
## 3 46 46 46 46 I have learned…
## # ℹ 1 more variable: percentage <dbl>
# Visualization
my_colors <- c("#FFA0FF", "#0000FF", "#DE00C3")
ggplot(leadership_motivation, aes(x = reorder(statement, -percentage), y = percentage, fill = statement)) +
geom_col() +
scale_fill_manual(values = my_colors) +
geom_text(aes(label = paste0(round(percentage), "%")),
vjust = -0.5) +
labs(title = "Leadership & Motivation Outcomes",
x = "Statement",
y = "Percentage of Students Who relate and agree with the Statement") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))

# MARKETING
# Step 1: Define your updated list
themes <- list(
"Student Joy & Belonging" = c(
"I am happy when I am at school.",
"I enjoy praciticing my instrument/practicing singing at home.",
"The program is my favorite part of the day."
),
"Emotional Impact of Music" = c(
"When I listen to music I become calm.",
"I feel good about myself."
),
"Confidence Growth" = c(
"I am more comfortable playing in an ensemble.",
"I have more confidence in myself as a student as a result of this program."
),
"Future Aspirations" = c(
"I am more interested in studying music in college or attending a music conservatory/school."
),
"Social Connection" = c(
"I made new friends in this program.",
"I am more comfortable playing my instrument in front of people."
)
)
# Step 2: Flatten and calculate results
flat_statements <- unlist(themes, use.names = FALSE)
marketing_results <- data.frame(
Question = flat_statements,
Percent_Agree = sapply(flat_statements, function(q) {
if (q %in% names(scarb_core)) {
mean(scarb_core[[q]] >= 1, na.rm = TRUE) * 100
} else {
NA
}
})
)
# Step 3: Round and print
marketing_results$Percent_Agree <- round(marketing_results$Percent_Agree, 1)
print(marketing_results)
## Question
## I am happy when I am at school. I am happy when I am at school.
## I enjoy praciticing my instrument/practicing singing at home. I enjoy praciticing my instrument/practicing singing at home.
## The program is my favorite part of the day. The program is my favorite part of the day.
## When I listen to music I become calm. When I listen to music I become calm.
## I feel good about myself. I feel good about myself.
## I am more comfortable playing in an ensemble. I am more comfortable playing in an ensemble.
## I have more confidence in myself as a student as a result of this program. I have more confidence in myself as a student as a result of this program.
## I am more interested in studying music in college or attending a music conservatory/school. I am more interested in studying music in college or attending a music conservatory/school.
## I made new friends in this program. I made new friends in this program.
## I am more comfortable playing my instrument in front of people. I am more comfortable playing my instrument in front of people.
## Percent_Agree
## I am happy when I am at school. 56.5
## I enjoy praciticing my instrument/practicing singing at home. 54.3
## The program is my favorite part of the day. 19.6
## When I listen to music I become calm. 71.7
## I feel good about myself. 65.2
## I am more comfortable playing in an ensemble. 54.3
## I have more confidence in myself as a student as a result of this program. 45.7
## I am more interested in studying music in college or attending a music conservatory/school. 13.0
## I made new friends in this program. 56.5
## I am more comfortable playing my instrument in front of people. 34.8
# DATA VISUALIZATIONS FOR MARKETING
# Required libraries
library(dplyr)
library(ggplot2)
library(tibble)
# Flatten themes into a dataframe with theme info
theme_df <- enframe(themes, name = "Theme", value = "Question") %>%
unnest(cols = c(Question))
# Join with your marketing results
viz_data <- marketing_results %>%
left_join(theme_df, by = "Question")
# Optional: reorder for prettier plots
viz_data <- viz_data %>%
mutate(Question = factor(Question, levels = rev(Question)),
Theme = factor(Theme))
# Define custom theme colors
theme_colors <- c(
"Student Joy & Belonging" = "#75ccc4",
"Emotional Impact of Music" = "#fac792",
"Confidence Growth" = "#f29693",
"Future Aspirations" = "#969ebe",
"Social Connection" = "#4b8fcc"
)
# Plot
library(stringr)
viz_data$Question <- str_wrap(viz_data$Question, width = 40)
ggplot(viz_data, aes(x = Question, y = Percent_Agree, fill = Theme)) +
geom_col(width = 0.7) +
geom_text(aes(label = paste0(Percent_Agree, "%")), hjust = -0.1, size = 4, fontface = "bold") +
coord_flip() +
scale_fill_manual(values = theme_colors) +
labs(
title = "Emotional & Personal Impact of Music Program",
subtitle = "% of students who Agree to the statement",
x = NULL, y = "Percent Agree", fill = "Theme"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 18, color = "#2C3E50"),
plot.subtitle = element_text(size = 13, color = "#7F8C8D"),
axis.text.y = element_text(size = 11),
legend.position = "bottom"
) +
scale_y_continuous(limits = c(0, 100), expand = expansion(mult = c(0, 0.1)))

##Key stats
library(waffle)
question <- "When I listen to music I become calm."
responses <- scarb_core[[question]]
num_agree <- sum(responses >= 1, na.rm = TRUE)
total_responses <- sum(!is.na(responses))
num_other <- total_responses - num_agree
cat("Agree:", num_agree, "\nOther:", num_other, "\nTotal:", total_responses)
## Agree: 33
## Other: 13
## Total: 46
waffle(c("Agree" = 33, "Other" = 12), rows = 5,
colors = c("#4b8fcc", "#D3D3D3"),
title = "'When I listen to music I become calm.'~ 73% of Scarborough Core Program students Agree")

library(tidyverse)
library(ggtext)
question <- "I am more comfortable playing in an ensemble."
responses <- scarb_core[[question]]
num_agree <- sum(responses >= 1, na.rm = TRUE)
total_responses <- sum(!is.na(responses))
num_other <- total_responses - num_agree
cat("Agree:", num_agree, "\nOther:", num_other, "\nTotal:", total_responses)
## Agree: 25
## Other: 21
## Total: 46
library(waffle)
library(ggplot2)
# Create waffle chart: 6 out of 10 confident
confidence_plot <- waffle::waffle(
c("Confident in Ensemble" = 6, "Other Responses" = 4),
rows = 1,
colors = c("#00BFC4", "#E5E5E5"),
title = "6 out of 10 students feel more confident playing in an ensemble",
legend_pos = "bottom"
)
confidence_plot
