跳过expss表中二分变量的“零”级别

时间:2019-08-30 14:20:14

标签: r expss

我想使用expss包为一些二分变量创建一个摘要表。由于变量是二分的,因此两个级别之一就足以“显示图片”。

我尝试使用功能tab_net_cell,但无法获得正确的结果。这是BrCa(乳腺癌)为1或0的一些示例代码。我只想显示患有但不患有乳腺癌的患者人数。

df <- data.frame(BrCa = c(1,1,1,0,0,0,NA,NA,0,0))
df$group <- c(1,2,1,2,1,2,1,2,1,2)

df %>% 
  expss::tab_cols(group) %>%
  expss::tab_cells(BrCa)  %>%
  expss::tab_stat_cpct(total_row_position = "none",label = "%") %>%
  expss::tab_stat_cases(total_row_position = "none",label = "N") %>%
  expss::tab_pivot(stat_position = "inside_rows") 


df %>% 
  expss::tab_cols(group) %>%
  expss::tab_cells(BrCa)  %>%
  expss::tab_net_cells("BrCa" = eq(1))  %>%
  expss::tab_stat_cpct(total_row_position = "none",label = "%") %>%
  expss::tab_stat_cases(total_row_position = "none",label = "N") %>%
  expss::tab_pivot(stat_position = "inside_rows") 

1 个答案:

答案 0 :(得分:2)

最简单的方法是过滤结果表:

df <- data.frame(BrCa = c(1,1,1,0,0,0,NA,NA,0,0))
df$group <- c(1,2,1,2,1,2,1,2,1,2)

df %>% 
    expss::tab_cols(group) %>%
    expss::tab_cells(BrCa)  %>%
    expss::tab_stat_cpct(total_row_position = "none",label = "%") %>%
    expss::tab_stat_cases(total_row_position = "none",label = "N") %>%
    expss::tab_pivot(stat_position = "inside_rows") %>% 
    expss::where(grepl(1, row_labels))

另一种方法是使用均值和和而不是cpct和case:

df %>% 
    expss::tab_cols(group) %>%
    expss::tab_cells(BrCa*100)  %>%
    expss::tab_stat_mean(label = "%") %>%
    expss::tab_stat_sum(label = "N") %>%
    expss::tab_pivot(stat_position = "inside_rows")