gtsummary会把取值固定的连续变量视为分类变量

编程语言 2026-07-08

我在使用R 4.4.1,gtsummary 版本为2.5.0。当一个连续变量的取值保持不变时,gtsummary 会把它视为分类变量。

示例:

gtsummary::theme_gtsummary_compact()

adex <- pharmaverseadam::adex |>
  dplyr::filter(PARAMCD == 'TDOSE') |> 
  select(USUBJID, dplyr::starts_with("TRT01A"), , dplyr::starts_with("PARAM"), AVAL) |> 
  dplyr::mutate(TDOSE = 10, TDOSE1 = 5.1)

adex |>
  gtsummary::tbl_summary(
    by = TRT01A,
    include = c(AVAL, TDOSE, TDOSE1),
    label = list(AVAL ~ "Total dose calculated",
                 TDOSE ~ "Total dose static",
                 TDOSE1 ~ "Total dose static 1"),
    type = gtsummary::all_continuous() ~ "continuous2",
    statistic = gtsummary::all_continuous() ~ c("{N_nonmiss}", "{mean} ({sd})",
                                                "{median}", "{min}, {max}"),
    digits = gtsummary::all_continuous() ~ c(N_nonmiss = 0, mean = 2, sd = 3,
                                             median = 2, min = 1, max = 1),
    missing = "no")

请注意,在下方的结果中,TDOSE与 TDOSE1的结果仅为计数。

在此输入图片描述

解决方案

我在这里误解了 includetype 的用法。只要在 type 下明确提及连续变量,结果就如预期。更新后的语法如下:

adex |>
  gtsummary::tbl_summary(
    by = TRT01A,
    include = c(AVAL, TDOSE, TDOSE1),
    label = list(AVAL ~ "Total dose calculated",
                 TDOSE ~ "Total dose static",
                 TDOSE1 ~ "Total dose static 1"),
    type = c(AVAL, TDOSE, TDOSE1) ~ "continuous2",
    statistic = gtsummary::all_continuous() ~ c("{N_nonmiss}", "{mean} ({sd})",
                                                "{median}", "{min}, {max}"),
    digits = gtsummary::all_continuous() ~ c(N_nonmiss = 0, mean = 2, sd = 3,
                                             median = 2, min = 1, max = 1),
    missing = "no")
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章