It is often desirable to print variable labels above a summary table that shows the count of factor labels. The labels exported on choose all that apply questions, including the question and whichever response was chosen. This redundancy is often unwanted, and the results are not presented professionally.
For example, in the Nacho Craving Index data, the first ingredient is
“Chips”. We see how R presents this information by simply printing the
components of the
<- readRDS(file = "./redcap.rds") redcap $ingredients___1 redcap# What ingredients do you currently crave?: Chips #  Checked Checked Unchecked Unchecked Unchecked Unchecked Checked #  Unchecked Unchecked Unchecked Unchecked Unchecked Checked Unchecked #  Unchecked Checked Unchecked Unchecked Checked Unchecked Unchecked #  Unchecked Checked Unchecked Checked Unchecked Unchecked Unchecked #  Unchecked Checked # attr(,"redcapLabels") #  Unchecked Checked # attr(,"redcapLevels") #  0 1 # Levels: Unchecked Checked
As we can see, this information is quite ugly, so we want to tabulate
the results instead. However, if we use the simple
function to clean up this information, we lose the original question and
the answer label for
table(redcap$ingredients___1) # # Unchecked Checked # 21 9
We no longer know what the question was or which “select all” option this information represents.
make_choose_one_table() function can be used with a
factor variable to tabulate the response while preserving the
question and checked option context.
make_choose_one_table(redcap$ingredients___1) # What ingredients do you currently crave?: Chips # Response n percent # Unchecked 21 70% # Checked 9 30%
Further, this output can be molded into a publication-ready table with a single additional function call.
make_choose_one_table(redcap$ingredients___1) %>% ::kable() knitr
What ingredients do you currently crave?: Chips
subset option, if set to
cause the function to remove the label’s text and only show the response
option (i.e., not repeat the “What ingredients do you currently crave?”
make_choose_one_table( $ingredients___2, redcapsubset = TRUE %>% ) ::kable() knitr
This function can also be used in an analysis pipeline with a data frame name and the name of the factor inside that data frame. For example:
%>% redcap make_choose_one_table(ingredients___3) %>% ::kable() knitr
What ingredients do you currently crave?: Orange cheese