如何翻转tbl_svysummary生成表格中的No和Yes列顺序?
翻转tbl_svysummary表格中No/Yes列顺序的方法
当然可以,有两种常用方法实现需求:
方法1:修改数据中分类变量的因子水平
直接调整both变量的因子水平顺序,让"Yes"排在"No"前面,生成表格时会自动按新顺序展示列:
data(api, package = "survey") # 修改both变量的因子水平,将Yes设为第一个水平 apiclus1_mod <- apiclus1 %>% mutate(both = factor(both, levels = c("Yes", "No"))) # 生成汇总表格 tbl_svysummary_ex2 <- survey::svydesign(id = ~dnum, weights = ~pw, data = apiclus1_mod, fpc = ~fpc) %>% tbl_svysummary(by = "both", include = c(api00, stype))
方法2:在表格生成后调整列顺序
如果不想修改原始数据,可使用modify_table_cols()函数直接调整列的位置和标签:
data(api, package = "survey") tbl_svysummary_ex2 <- survey::svydesign(id = ~dnum, weights = ~pw, data = apiclus1, fpc = ~fpc) %>% tbl_svysummary(by = "both", include = c(api00, stype)) %>% # 调整列顺序,将Yes列移至No列前方,并修正列标签 modify_table_cols( cols = c(label, stat_1, stat_0, p.value), labels = list(stat_1 = "Yes", stat_0 = "No") )
注:默认情况下,by变量的第一个水平对应stat_0,第二个对应stat_1,原数据中both的水平是No、Yes,所以stat_0是No列,stat_1是Yes列,调整后即可实现顺序翻转。
内容的提问来源于stack exchange,提问作者brazzblank
相关产品推荐
相关产品推荐

