tab_stat_cpct выводит неправильные процентные итоги по столбцам

#r #expss

Вопрос:

Я запускал таблицы, включая tab_stat_cpct, в надежде, что col %появится в нижней строке, добавляя до 100% в каждом столбце. Но вот что я понимаю…

 mtcars %>%
  tab_cells(am) %>%
  tab_cols(total(),vs) %>%
  tab_stat_cases(label = "N") %>%
  tab_stat_cpct(label="%") %>% 
  tab_pivot(stat_position = "inside_rows") %>% drop_rc() %>% 
  split_table_to_df()

1                   #Total vs   
2                           0  1
3 am            0 N     19 12  7
4                 %     59 67 50
5               1 N     13  6  7
6                 %     41 33 50
7    #Total cases N     32 18 14
8                 %     32 18 14
 

Они просто повторяют общее число n случаев в каждом столбце, а не %. Это ошибка или я делаю что-то не так в своем коде? Спасибо.

Ответ №1:

label аргумент-это просто метка для текущего блока. По умолчанию все итоговые значения являются невзвешенным числом случаев и не зависят от label . Чтобы получить желаемые результаты, нам нужно установить общую статистику и общие метки:

 library(expss)
mtcars %>%
    tab_cells(am) %>%
    tab_cols(total(),vs) %>%
    tab_stat_cases(label = "N", total_label = "") %>%
    tab_stat_cpct(label="%", total_statistic = "w_cpct", total_label = "") %>% 
    tab_pivot(stat_position = "inside_rows") 

# |    |    |    | #Total |     vs |     |
# |    |    |    |        |      0 |   1 |
# | -- | -- | -- | ------ | ------ | --- |
# | am |  0 |  N |  19.00 |  12.00 |   7 |
# |    |    |  % |  59.38 |  66.67 |  50 |
# |    |  1 |  N |  13.00 |   6.00 |   7 |
# |    |    |  % |  40.62 |  33.33 |  50 |
# |    |  # |  N |  32.00 |  18.00 |  14 |
# |    |    |  % | 100.00 | 100.00 | 100 |