tab_stat_cpct 生成错误的列百分比总计

tab_stat_cpct producing wrong column percentage totals

我已经 运行 表格,包括 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

他们只是重复每一列中的案例总数,而不是百分比。这是错误还是我在代码中做错了什么?谢谢

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 |