簡體   English   中英

在 {gtsummary} 中對重疊的分類變量進行排序

[英]Sorting overlapping categorical variables in {gtsummary}

require(gtsummary)

test <- structure(list(`1` = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0), `2` = c(1,0, 0, 0, 0, 1, 0, 1, 0, 0), `3` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,0), `4` = c(1, 1, 0, 0, 1, 0, 0, 0, 0, 0), `5` = c(1, 0, 1, 1,0, 1, 1, 0, 0, 0), `6` = c(0, 0, 0, 1, 0, 0, 1, 0, 0, 0), `7` = c(0,0, 0, 0, 0, 0, 0, 0, 0, 0), `8` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,0), `9` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `10` = c(0, 0, 0,0, 0, 0, 0, 0, 0, 1)), row.names = c(NA, -10L), class = c("tbl_df","tbl", "data.frame")) 

在這個示例數據中,我有 10 個分類變量。

     `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8`   `9`  `10`
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
 1     0     1     0     1     1     0     0     0     0     0
 2     0     0     0     1     0     0     0     0     0     0
 3     0     0     0     0     1     0     0     0     0     0
 4     0     0     0     0     1     1     0     0     0     0
 5     0     0     0     1     0     0     0     0     0     0
 6     0     1     0     0     1     0     0     0     0     0
 7     0     0     0     0     1     1     0     0     0     0
 8     0     1     0     0     0     0     0     0     0     0
 9     1     0     0     0     0     0     0     0     0     0
10     0     0     0     0     0     0     0     0     0     1

由於它們可以相互重疊,我將它們放在不同的列中,使用 0 和 1,表示“是”或“否”擁有(或不擁有)分類變量。

test %>% tbl_summary()時,它會創建: 在此處輸入圖像描述

我想按頻率排序,但是

test %>% tbl_summary(sort = list(everything() ~ "frequency"))

不起作用。

有沒有辦法做到這一點? 先感謝您。

tbl_summary(sort=)參數對變量內的級別進行排序,而不是變量在表中出現的順序。 變量在表中出現的順序與它們在數據框中出現的順序相同。

我們可以使用下面的代碼更新數據框中的順序。

library(gtsummary)
#> #Uighur
packageVersion("gtsummary")
#> [1] '1.5.0'

test <- structure(list(`1` = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0), `2` = c(1,0, 0, 0, 0, 1, 0, 1, 0, 0), `3` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,0), `4` = c(1, 1, 0, 0, 1, 0, 0, 0, 0, 0), `5` = c(1, 0, 1, 1,0, 1, 1, 0, 0, 0), `6` = c(0, 0, 0, 1, 0, 0, 1, 0, 0, 0), `7` = c(0,0, 0, 0, 0, 0, 0, 0, 0, 0), `8` = c(0, 0, 0, 0, 0, 0, 0, 0, 0,0), `9` = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), `10` = c(0, 0, 0,0, 0, 0, 0, 0, 0, 1)), row.names = c(NA, -10L), class = c("tbl_df","tbl", "data.frame")) 

# order variables by prevelence 
prev <- purrr::map_dbl(test, mean) %>% sort(decreasing = TRUE)

test %>%
  select(all_of(names(prev))) %>%
  tbl_summary() %>%
  as_kable() # convert to kable for SO
特征 N = 10
5 5 (50%)
2 3 (30%)
4 3 (30%)
6 2 (20%)
1 1 (10%)
10 1 (10%)
3 0 (0%)
7 0 (0%)
8 0 (0%)
9 0 (0%)

代表 package (v2.0.1) 於 2021 年 12 月 10 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM