将丢失的单元格重新编码为 NA,但仍显示在 table 中

Recoded missing cells to NA but still showing up in table

我正在尝试使用 gtsummary 构建 table。我将列转换为因子,然后重新编码因子,然后分配值(“”,“U”)以丢失。

但是,当我制作 table 时,指定为“缺失”的级别仍然显示为 table 中的级别。我如何隐藏它们?

data <- tribble(
  ~Patient, ~malig, ~donor,
  #---------/-------/------
  "Peter", "Y", "DCD",
  "Bob", "N", "DBD",
  "John", "U", "DCD",
  "Kate", " ", "DBD"
)

names<-c('malig','donor')

data[,names]<-lapply(data[,names], factor)

data$malig<-recode_factor(data$malig, 
                              "N"="No", 
                              "Y"="Yes")

data <- data %>% 
  mutate_all(na_if,"") %>%
  mutate_all(na_if,"U") %>%
  mutate_all(na_if," ")

(table1 <- 
  tbl_summary(
    data,
    by = donor, 
    missing="no", 
    label=list(malig ~ "Malignancy History")
  ) %>%
  add_n() %>% 
  add_p() %>% 
  modify_header() %>% 
  add_overall())

tbl_summary() 函数将报告因子变量的所有级别,即使它们未被观察到。如果您不想报告未观察到的水平,则需要从因子水平中删除未观察到的水平。在此示例中,您可以在设置列因数之前设置值 NA。