Search code examples
rexpss

How to do a multiple choice crosstable in R


My code...

library(expss)
library(haven)
X4707 <- read_sav("/home/cfmc/4707/data/4707.sav")
X4707 %>% 
    tab_cells("By phone"=qpd4_1==1,"By email"=qpd4_2==1,"Utility website"=qpd4_3==1,"Roseville Electric notification"=qpd4_4==1,"Social media"=qpd4_5==1,"Text"=qpd4_6==1,"Not sure"=qpd4_8==1) %>% 
    tab_cols(total(), qf5) %>% 
    tab_stat_cpct() %>% 
    tab_last_sig_cpct() %>% 
    tab_pivot()

My output looks like this... enter image description here

I would like for the output to simply contain the text of the code going down the stub (By phone, By email, etc.) without the TRUE, FALSE, etc.


Solution

  • You need to designate that you want multiple response. You have multiple choice with positional coding so you need mdset (m(ultiple) d(ichotomy) set) function:

    library(expss)
    library(haven)
    X4707 <- read_sav("/home/cfmc/4707/data/4707.sav")
    X4707 %>% 
        tab_cells(mdset("By phone"=qpd4_1==1,"By email"=qpd4_2==1,"Utility website"=qpd4_3==1,"Roseville Electric notification"=qpd4_4==1,"Social media"=qpd4_5==1,"Text"=qpd4_6==1,"Not sure"=qpd4_8==1)) %>% 
        tab_cols(total(), qf5) %>% 
        tab_stat_cpct() %>% 
        tab_last_sig_cpct() %>% 
        tab_pivot()