Prepping and exploring grade bands
d %>%
mutate(n_grades = str_count(grade_level_taught, ",")) %>%
count(n_grades)
## # A tibble: 13 × 2
## n_grades n
## <int> <int>
## 1 0 52
## 2 1 39
## 3 2 76
## 4 3 124
## 5 4 6
## 6 5 11
## 7 6 10
## 8 7 2
## 9 8 1
## 10 10 1
## 11 11 1
## 12 12 5
## 13 NA 2
d_grades <- d %>%
select(response_id, grade_level_taught) %>%
mutate(grade_level_taught = str_replace(grade_level_taught, ":", "")) %>%
separate(col = grade_level_taught, into = c(str_c("grade", letters[1:13])), sep = ",") %>%
gather(key, val, -response_id) %>%
arrange(response_id) %>%
mutate(val = as.integer(val)) %>%
mutate(elem = if_else(val <= 5, 1, 0)) %>%
mutate(second = if_else(val >= 6, 1, 0)) %>%
mutate(middle = if_else(val >= 6 & val <= 8, 1, 0)) %>%
mutate(high = if_else(val >= 9, 1, 0)) %>%
select(response_id, elem, second, middle, high) %>%
group_by(response_id) %>%
summarize(elem = if_else(any(elem == 1), 1, 0),
second = if_else(any(second == 1), 1, 0),
middle = if_else(any(middle == 1), 1, 0),
high = if_else(any(high == 1), 1, 0)) %>%
mutate_if(is.double, replace_na, 0)
d_grades %>%
count(elem, middle, high) %>%
knitr::kable()
0 |
0 |
0 |
8 |
0 |
0 |
1 |
194 |
0 |
1 |
0 |
68 |
0 |
1 |
1 |
28 |
1 |
0 |
0 |
14 |
1 |
1 |
0 |
8 |
1 |
1 |
1 |
10 |
# 194 only teach high
# 68 only teach middle
# 14 only teach elem
# 28 teach middle and high
# 8 teach elem and middle
# 10 teach all
# 8 teach none (remove?)
d <- d %>%
left_join(d_grades)
reasons for not using a tool
overall
overall_q97 <- d %>%
select(response_id, elem, middle, high, q97) %>%
mutate(q97 = str_replace(q97, ", ", "; ")) %>%
mutate(q97 = str_replace(q97, "etc\\.\\)", "")) %>%
separate(col = q97, into = c(str_c("grade", letters[1:9])), sep = ",") %>%
gather(key, val, -response_id, -elem, -middle, -high) %>%
filter(val!=" ") %>%
filter(!is.na(val)) %>%
janitor::tabyl(val) %>%
arrange(desc(n)) %>%
mutate(percent = round(percent, 3))
# p %>%
# ggplot(aes(x = reorder(val, percent), y = percent)) +
# geom_col() +
# coord_flip() +
# xlab(NULL)
cost - elem
elem <- d %>%
select(response_id, elem, middle, high, q97) %>%
mutate(q97 = str_replace(q97, ", ", "; ")) %>%
mutate(q97 = str_replace(q97, "etc\\.\\)", "")) %>%
separate(col = q97, into = c(str_c("grade", letters[1:9])), sep = ",") %>%
gather(key, val, -response_id, -elem, -middle, -high) %>%
filter(val!=" ") %>%
filter(!is.na(val)) %>%
filter(elem == 1) %>% # selecting elem
janitor::tabyl(val) %>%
arrange(desc(n)) %>%
mutate(percent = round(percent, 3)) %>%
mutate(rank_order = dplyr::row_number()) %>%
select(val, elem = percent)
cost - midd
midd <- d %>%
select(response_id, elem, middle, high, q97) %>%
mutate(q97 = str_replace(q97, ", ", "; ")) %>%
mutate(q97 = str_replace(q97, "etc\\.\\)", "")) %>%
separate(col = q97, into = c(str_c("grade", letters[1:9])), sep = ",") %>%
gather(key, val, -response_id, -elem, -middle, -high) %>%
filter(val!=" ") %>%
filter(!is.na(val)) %>%
filter(middle == 1) %>% # selecting elem
janitor::tabyl(val) %>%
arrange(desc(n)) %>%
mutate(percent = round(percent, 3)) %>%
mutate(rank_order = dplyr::row_number()) %>%
select(val, midd = percent)
cost - high
high <- d %>%
select(response_id, elem, middle, high, q97) %>%
mutate(q97 = str_replace(q97, ", ", "; ")) %>%
mutate(q97 = str_replace(q97, "etc\\.\\)", "")) %>%
separate(col = q97, into = c(str_c("grade", letters[1:9])), sep = ",") %>%
gather(key, val, -response_id, -elem, -middle, -high) %>%
filter(val!=" ") %>%
filter(!is.na(val)) %>%
filter(high == 1) %>% # selecting elem
janitor::tabyl(val) %>%
arrange(desc(n)) %>%
mutate(percent = round(percent, 3)) %>%
mutate(rank_order = dplyr::row_number()) %>%
select(val, high = percent)
final table
to_plot <- overall_q97 %>%
left_join(elem) %>%
left_join(midd) %>%
left_join(high) %>%
select(Barrier = val, n, overall = percent, elem, midd, high) %>%
mutate_all(replace_na, 0)
to_plot %>%
filter(!str_detect(Barrier, "Other")) %>%
knitr::kable()
Cost |
282 |
0.314 |
0.362 |
0.318 |
0.313 |
Time to develop new lessons that I previously did using pencil-and-paper |
172 |
0.192 |
0.112 |
0.167 |
0.201 |
Difficulty of learning a new tool |
153 |
0.171 |
0.175 |
0.167 |
0.173 |
Student information security |
103 |
0.115 |
0.175 |
0.148 |
0.102 |
Availability of computers (tablets; laptops |
94 |
0.105 |
0.088 |
0.084 |
0.112 |
Student discomfort with computers |
37 |
0.041 |
0.000 |
0.035 |
0.047 |
My own discomfort with computers |
25 |
0.028 |
0.013 |
0.032 |
0.024 |
Tools used
overall
overall_q78 <- d %>%
select(response_id, elem, middle, high, q78) %>%
mutate(q78 = str_replace(q78, ", ", "; ")) %>%
mutate(q78 = str_replace(q78, "etc\\.\\)", "")) %>%
separate(col = q78, into = c(str_c("grade", letters[1:12])), sep = ",") %>%
gather(key, val, -response_id, -elem, -middle, -high) %>%
filter(val!=" ") %>%
filter(!is.na(val)) %>%
janitor::tabyl(val) %>%
arrange(desc(n)) %>%
mutate(percent = round(percent, 3))
final table
to_plot <- overall_q78 %>%
left_join(elem) %>%
left_join(midd) %>%
left_join(high) %>%
select(Technology = val, n, overall = percent, elem, midd, high) %>%
mutate_all(replace_na, 0)
to_plot %>%
filter(!str_detect(Technology, "Other")) %>%
knitr::kable()
Google Sheets |
273 |
0.234 |
0.241 |
0.241 |
0.223 |
Calculator (not for graphing) |
238 |
0.204 |
0.222 |
0.222 |
0.195 |
Data Nuggets |
195 |
0.167 |
0.139 |
0.157 |
0.175 |
Microsoft Excel |
141 |
0.121 |
0.102 |
0.095 |
0.130 |
Graphing Calculator |
95 |
0.082 |
0.056 |
0.054 |
0.100 |
Desmos |
52 |
0.045 |
0.074 |
0.068 |
0.040 |
DataClassroom |
41 |
0.035 |
0.019 |
0.033 |
0.039 |
Infogram (or similar online tool for creating an infographic) |
37 |
0.032 |
0.056 |
0.046 |
0.027 |
Common Online Data Analysis Platform (CODAP) |
14 |
0.012 |
0.009 |
0.014 |
0.012 |
TUVA |
11 |
0.009 |
0.009 |
0.019 |
0.007 |
R |
6 |
0.005 |
0.009 |
0.003 |
0.004 |