The obt_summary_table
function allows for quick
summaries of one or two variables. It returns a tibble with the grouping
variable(s), count and percentage within that group. The resulting
tibble can easily be piped into a ggplot2 function for
visualisation.
One Variable Summary
library(obt)
library(dplyr)
library(ggplot2)
df <- ele_rc
df |>
obt_summary_table(school)
#> # A tibble: 5 × 3
#> school n perc
#> <chr> <int> <dbl>
#> 1 Degrassi Community School 516 0.206
#> 2 Shelbyville Elementary School 763 0.305
#> 3 Southpark Elementary School 326 0.130
#> 4 Springfield Elementary School 489 0.196
#> 5 Watkins Middle School 406 0.162
Two Variable Summary
df |>
obt_summary_table(school, grade) |>
print(n = Inf)
#> # A tibble: 40 × 4
#> # Groups: school [5]
#> school grade n perc
#> <chr> <chr> <int> <dbl>
#> 1 Degrassi Community School 1 55 0.107
#> 2 Degrassi Community School 2 60 0.116
#> 3 Degrassi Community School 3 60 0.116
#> 4 Degrassi Community School 4 60 0.116
#> 5 Degrassi Community School 5 78 0.151
#> 6 Degrassi Community School 6 60 0.116
#> 7 Degrassi Community School 7 79 0.153
#> 8 Degrassi Community School 8 64 0.124
#> 9 Shelbyville Elementary School 1 94 0.123
#> 10 Shelbyville Elementary School 2 109 0.143
#> 11 Shelbyville Elementary School 3 84 0.110
#> 12 Shelbyville Elementary School 4 93 0.122
#> 13 Shelbyville Elementary School 5 95 0.125
#> 14 Shelbyville Elementary School 6 102 0.134
#> 15 Shelbyville Elementary School 7 105 0.138
#> 16 Shelbyville Elementary School 8 81 0.106
#> 17 Southpark Elementary School 1 46 0.141
#> 18 Southpark Elementary School 2 34 0.104
#> 19 Southpark Elementary School 3 36 0.110
#> 20 Southpark Elementary School 4 50 0.153
#> 21 Southpark Elementary School 5 44 0.135
#> 22 Southpark Elementary School 6 35 0.107
#> 23 Southpark Elementary School 7 40 0.123
#> 24 Southpark Elementary School 8 41 0.126
#> 25 Springfield Elementary School 1 51 0.104
#> 26 Springfield Elementary School 2 66 0.135
#> 27 Springfield Elementary School 3 57 0.117
#> 28 Springfield Elementary School 4 71 0.145
#> 29 Springfield Elementary School 5 53 0.108
#> 30 Springfield Elementary School 6 66 0.135
#> 31 Springfield Elementary School 7 66 0.135
#> 32 Springfield Elementary School 8 59 0.121
#> 33 Watkins Middle School 1 47 0.116
#> 34 Watkins Middle School 2 38 0.0936
#> 35 Watkins Middle School 3 52 0.128
#> 36 Watkins Middle School 4 58 0.143
#> 37 Watkins Middle School 5 57 0.140
#> 38 Watkins Middle School 6 49 0.121
#> 39 Watkins Middle School 7 52 0.128
#> 40 Watkins Middle School 8 53 0.131
Visualisation
df |>
obt_summary_table(school) |>
ggplot (aes (x = school, y = perc)) +
geom_col (fill = "#bcc4d7") +
scale_x_discrete(label = scales::wrap_format(10)) +
scale_y_continuous(labels = scales::percent_format(),
limits = c(0, 1)) +
geom_text (aes (label = scales::percent(perc)),
vjust = -1) +
labs (title = "Percentage of Students by Elementary Schools",
x = NULL,
y = "Percent") +
theme_minimal()