I frequently receive data from REDCap surveys in which respondents are permitted to "Check" >1 response to a survey question. Each potential response is housed in its own column. I'd like to summarize the frequency with which each response option (column) has been checked. For example:
library(tidyverse)
set.seed(1234)
responses<-c("Checked", "Unchecked")
numobs<-10
my_example<-data.frame(id=1:10,
Response_Option_A=sample(responses, numobs, replace=TRUE),
Response_Option_B=sample(responses, numobs, replace=TRUE),
Response_Option_C=sample(responses, numobs, replace=TRUE),
Response_Option_D=sample(responses, numobs, replace=TRUE),
stringsAsFactors = FALSE)
my_example
#> id Response_Option_A Response_Option_B Response_Option_C Response_Option_D
#> 1 1 Unchecked Unchecked Unchecked Checked
#> 2 2 Unchecked Unchecked Unchecked Unchecked
#> 3 3 Unchecked Unchecked Unchecked Checked
#> 4 4 Unchecked Checked Unchecked Checked
#> 5 5 Checked Unchecked Unchecked Checked
#> 6 6 Unchecked Unchecked Unchecked Unchecked
#> 7 7 Checked Unchecked Checked Checked
#> 8 8 Checked Checked Unchecked Unchecked
#> 9 9 Checked Unchecked Unchecked Unchecked
#> 10 10 Unchecked Unchecked Unchecked Checked
My initial inclination was to try this, but it returns the total number of responses checked, rather than the number in each column.
my_example %>%
select(starts_with("Response_Option_")) %>%
summarise(checked=sum(.=="Checked"))
#> checked
#> 1 13
Created on 2020-08-10 by the reprex package (v0.3.0)
Help summarizing these responses efficiently is appreciated.