如何在expss表格中跳过二分变量零水平展示目标统计结果
用expss包生成仅展示二分变量特定水平的汇总表
我明白你想仅展示二分变量BrCa中取值为1(患乳腺癌)的患者数量和百分比,按group分组汇总。你尝试用tab_net_cell没得到预期结果,大概率是语法用法不对,我来给你修正一下:
首先先确认你的示例数据:
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)
方法一:直接在tab_cells中筛选目标水平
这种方式最直观,直接指定BrCa == 1作为统计对象,同时给它设置清晰的标签:
library(expss) df %>% tab_cols(group) %>% # 按group列分组 tab_cells(BrCa == 1 ~ "患有乳腺癌 (BrCa=1)") %>% # 筛选BrCa=1的样本,设置标签 tab_stat_cpct(total_row_position = "none", label = "%") %>% # 计算百分比 tab_stat_cases(total_row_position = "none", label = "N") %>% # 计算样本量 tab_pivot(stat_position = "inside_rows") # 调整表格布局
方法二:正确使用tab_net_cells函数
如果你想坚持用tab_net_cells,需要用net()函数来定义要汇总的组,而不是直接赋值:
df %>% tab_cols(group) %>% tab_cells(BrCa) %>% tab_net_cells(net(label = "患有乳腺癌 (BrCa=1)", BrCa == 1)) %>% # 用net()定义目标组 tab_stat_cpct(total_row_position = "none", label = "%") %>% tab_stat_cases(total_row_position = "none", label = "N") %>% tab_pivot(stat_position = "inside_rows")
预期输出
两种方法都会得到类似这样的表格,只展示BrCa=1的统计结果:
| | group | 1 | 2 | |----------------------|-------|------|------| |患有乳腺癌 (BrCa=1) - % | | 33.3 | 20.0 | |患有乳腺癌 (BrCa=1) - N | | 1 | 1 |
这里的百分比是基于**有效样本(排除NA)**计算的:group1有3个非NA样本,其中1个患乳腺癌;group2有4个非NA样本,1个患乳腺癌,所以对应百分比分别是33.3%和20.0%。
内容的提问来源于stack exchange,提问作者R learner
相关产品推荐
相关产品推荐

