gtsummary::tbl_summary()删除输出中的行

1hdlvixo  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(119)

我使用gtsummary::tbl_summary()创建汇总表。下面是一个示例数据:

df <- tribble(
  ~grade, ~year,
  "A", "senior",
  NA_character_, " senior",
  "A", NA_character_,
  "B", NA_character_,
  NA_character_, NA_character_,
  "F", "freshmen"
)

数据具有缺失值,这些缺失值会影响汇总表中的百分比

df |> tbl_summary()

等级A的百分比是50%,而不是2/6 = 33.3%。百分比是仅基于现有记录从4中计算出来的。我想从整个记录中获得百分比,所以我将缺失值设置为显式级别。

df |> mutate(across(everything(), ~forcats::fct_explicit_na(.x))) |> tbl_summary()

然而,现在我想删除那些行,(Missing)在其他级别保持相同的百分比。我如何在输出表中删除这些行?我最终想要这样的东西。
| 特色|N = 6|
| --------------|--------------|
| 等级||
| 一个|2人(33%)|
| B|1人(17%)|
| F|1人(17%)|
| 年||
| 新生|1人(17%)|
| 高级|2人(33%)|

**edit:**或者有更聪明的方法来处理百分比?而不是让它们显式级别,有没有方法直接更改这些百分比?我已经尝试在tbl_summary()中使用missing = "no"参数,但百分比仍然保持不变

df |> tbl_summary(missing = "no")

2w3kk1z5

2w3kk1z51#

如果我们想高级为n = 2,那么我们首先要删除 Dataframe 中的额外白色。剩下的是使用remove_row_type()函数,如@丹尼尔D. Sjoberg在评论中提到的:

library(dplyr)
library(gtsummary)

df %>% 
  mutate(across(everything(), ~forcats::fct_explicit_na(.x))) %>% 
  mutate(year = trimws(year)) %>% 
  tbl_summary() %>%  
  remove_row_type(variables = c(grade, year), 
                  type = "level", level_value = ("(Missing)"))

s4n0splo

s4n0splo2#

df |> 
  mutate(across(everything(), ~forcats::fct_explicit_na(.x))) |> 
  tbl_summary() |> 
  remove_row_type(type = "level", level_value = "(Missing)")

相关问题