Purpose

This document summarizes the results of a survey of Psychology Department graduate students conducted in 2017. It concerns the quantitative methods courses they have taken, and wish to have offered in the future.

Plan

  1. Import the data
  2. Clean it, as necessary
  3. Visualize the data

Import and clean

quant_surv_df <- readr::read_csv("csv/quant_course_survey-2017-clean.csv")
## Rows: 23 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (3): Course, Source, Status
## dbl (6): Took_psy, Took_oth, Took_nev, Offer_reg, Offer_summ, Offer_no
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
str(quant_surv_df)
## spc_tbl_ [23 × 9] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Course    : chr [1:23] "Structural Equation Modeling" "Multivariate stats" "Longitudinal Data Analysis" "Multi-Level Modeling" ...
##  $ Source    : chr [1:23] "survey" "survey" "survey" "survey" ...
##  $ Took_psy  : num [1:23] 2 7 1 17 5 1 0 0 0 2 ...
##  $ Took_oth  : num [1:23] 27 11 10 7 5 4 3 3 2 2 ...
##  $ Took_nev  : num [1:23] 24 34 41 29 41 46 48 47 50 47 ...
##  $ Offer_reg : num [1:23] 49 46 37 47 32 25 21 9 19 7 ...
##  $ Offer_summ: num [1:23] 3 6 15 5 17 25 20 38 27 26 ...
##  $ Offer_no  : num [1:23] 1 1 1 0 4 3 11 6 6 16 ...
##  $ Status    : chr [1:23] "Periodically" "Periodically" "HDFS" "Periodically" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Course = col_character(),
##   ..   Source = col_character(),
##   ..   Took_psy = col_double(),
##   ..   Took_oth = col_double(),
##   ..   Took_nev = col_double(),
##   ..   Offer_reg = col_double(),
##   ..   Offer_summ = col_double(),
##   ..   Offer_no = col_double(),
##   ..   Status = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

Visualize

Top courses taken

quant_surv_df %>%
  dplyr::select(., Course, Took_psy, Took_oth) %>%
  dplyr::mutate(., Took_total = Took_psy + Took_oth) %>%
  dplyr::filter(., Took_total > 0) %>%
  dplyr::arrange(., desc(Took_total)) %>%
  knitr::kable(., format = "html", escape = FALSE) %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
  kableExtra::scroll_box(width="800px")
Course Took_psy Took_oth Took_total
Structural Equation Modeling 2 27 29
Multi-Level Modeling 17 7 24
Multivariate stats 7 11 18
Longitudinal Data Analysis 1 10 11
Psychometrics 5 5 10
fMRI Data Analysis 8 2 10
Data Visualization and Management 10 0 10
Foundations of Programming 6 2 8
Network Analysis 1 4 5
Machine Learning 2 2 4
Dynamic Systems Modeling 0 3 3
Missing Data Analysis 0 3 3
Nonparametric stats 2 1 3
Research Reproducibility 3 0 3
Person Specific Data Analysis 0 3 3
Computational Modeling 0 2 2
Bayesian Analysis 0 2 2
R 0 1 1
Latent Class Analysis 0 1 1
Item Response Theory 0 1 1
Time Series Analysis 0 1 1

Top courses desired

The following table calculates a Most_popular variable equal to Offer_reg + Offer_summ - Offer_no then sorts on it.

quant_surv_df %>%
  dplyr::mutate(., Most_popular = Offer_reg + Offer_summ - Offer_no) %>%
  dplyr::mutate(., Offer_total = Offer_reg + Offer_summ) %>%
  dplyr::filter(., Offer_total > 0) %>%
  dplyr::arrange(., desc(Offer_total)) %>%
  dplyr::select(.,
                Course,
                Offer_reg,
                Offer_summ,
                Offer_total,
                Offer_no,
                Most_popular,
                Status) %>%
  dplyr::mutate(., Status = kableExtra::cell_spec(Status,
                                                  'html', color = ifelse(
                                                    Status == "Not_offered",
                                                    "red",
                                                    ifelse(Status %in% c("2022"), "green", "orange")
                                                  ))) %>%
  knitr::kable(., format = "html", escape = FALSE) %>%
  kableExtra::kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
  kableExtra::scroll_box(width = "800px")
Course Offer_reg Offer_summ Offer_total Offer_no Most_popular Status
Structural Equation Modeling 49 3 52 1 51 Periodically
Multivariate stats 46 6 52 1 51 Periodically
Longitudinal Data Analysis 37 15 52 1 51 HDFS
Multi-Level Modeling 47 5 52 0 52 Periodically
Data Visualization and Management 25 27 52 1 51 Not_offered
Network Analysis 25 25 50 3 47 SoDA
Psychometrics 32 17 49 4 45 2022
Foundations of Programming 22 26 48 4 44 Not_offered
Missing Data Analysis 9 38 47 6 41 HDFS
Computational Modeling 19 27 46 6 40 HDFS
fMRI Data Analysis 24 20 44 7 37 2022
Nonparametric stats 17 27 44 7 37 Not_offered
Research Reproducibility 12 30 42 9 33 Periodically
Dynamic Systems Modeling 21 20 41 11 30 HDFS
Machine Learning 7 26 33 16 17 IST
Latent Class Analysis 4 1 5 0 5 Sociology
Person Specific Data Analysis 1 1 2 1 1 HDFS
Bayesian Analysis 2 0 2 0 2 Not_offered
R 2 0 2 0 2 Periodically
Item Response Theory 2 0 2 0 2 Not_offered
Mixture Models 0 1 1 0 1 Not_offered
Ecological Momentary Assessment 1 0 1 0 1 HDFS