使用mutate调换gtsummary分组列后计算得到的差值为负数问题
你遇到的差值符号不符合预期的问题,核心是add_difference()默认的差值计算逻辑和你需要的方向不匹配:tbl_summary的by组列显示顺序由分组变量的因子水平决定,而add_difference()默认的差值计算规则是「by变量的第二个因子水平 减去 第一个因子水平」,和你预期的计算方向正好相反,所以会出现本应为正的差值显示为负的情况。
你不需要调整数据集的行顺序或者因子水平,直接在add_difference()中添加reverse = TRUE参数反转差值计算方向即可,修改后的代码如下:
homesurvey %>% select(period, CB2.Textbooks, CB2.Magazines, CB2.Newspapers, CB2.Religious_books, CB2.Coloring_books, CB2.Comics) %>% mutate(period = forcats::fct_rev(period)) %>% tbl_summary(by = period, statistic = all_continuous() ~ "{n} ({sd})", label = list (CB2.Textbooks ~ "Textbooks", CB2.Magazines ~ "Magazines", CB2.Newspapers ~ "Newspapers", CB2.Religious_books ~ "Religious books", CB2.Coloring_books ~ "Coloring books", CB2.Comics ~ "Comics") )%>% add_difference(reverse = TRUE) %>% modify_column_hide(ci)
如果你不想通过反转因子调整列显示顺序,也可以通过ref_group参数明确指定差值计算的参考组,配合modify_column_move()调整列的展示顺序即可,两者逻辑独立不会互相干扰。
内容的提问来源于stack exchange,提问作者Rote Grutze
相关产品推荐
相关产品推荐

