- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试对一些行/变量(分类的和连续的)进行分组,以帮助提高大型数据集中的表格可读性。
这是虚拟数据集:
library(gtsummary)
library(tidyverse)
library(gt)
set.seed(11012021)
# Create Dataset
PIR <-
tibble(
siteidn = sample(c("1324", "1329", "1333", "1334"), 5000, replace = TRUE, prob = c(0.2, 0.45, 0.15, 0.2)) %>% factor(),
countryname = sample(c("NZ", "Australia"), 5000, replace = TRUE, prob = c(0.3, 0.7)) %>% factor(),
hospt = sample(c("Metropolitan", "Rural"), 5000, replace = TRUE, prob = c(0.65, 0.35)) %>% factor(),
age = rnorm(5000, mean = 60, sd = 20),
apache2 = rnorm(5000, mean = 18.5, sd=10),
apache3 = rnorm(5000, mean = 55, sd=20),
mechvent = sample(c("Yes", "No"), 5000, replace = TRUE, prob = c(0.4, 0.6)) %>% factor(),
sex = sample(c("Female", "Male"), 5000, replace = TRUE) %>% factor(),
patient = TRUE
) %>%
mutate(patient_id = row_number())%>%
group_by(
siteidn) %>% mutate(
count_site = row_number() == 1L) %>%
ungroup()%>%
group_by(
patient_id) %>% mutate(
count_pt = row_number() == 1L) %>%
ungroup()
然后我使用以下代码生成我的表:
t1 <- PIR %>%
select(patientn = count_pt, siten = count_site, age, sex, apache2, apache3, apache2, mechvent, countryname) %>%
tbl_summary(
by = countryname,
missing = "no",
statistic = list(
patientn ~ "{n}",
siten ~ "{n}",
age ~ "{mean} ({sd})",
apache2 ~ "{mean} ({sd})",
mechvent ~ "{n} ({p}%)",
sex ~ "{n} ({p}%)",
apache3 ~ "{mean} ({sd})"),
label = list(
siten = "Number of ICUs",
patientn = "Number of Patients",
age = "Age",
apache2 = "APACHE II Score",
mechvent = "Mechanical Ventilation",
sex = "Sex",
apache3 = "APACHE III Score")) %>%
modify_header(stat_by = "**{level}**") %>%
add_overall(col_label = "**Overall**")
t2 <- PIR %>%
select(patientn = count_pt, siten = count_site, age, sex, apache2, apache3, apache2, mechvent, hospt) %>%
tbl_summary(
by = hospt,
missing = "no",
statistic = list(
patientn ~ "{n}",
siten ~ "{n}",
age ~ "{mean} ({sd})",
apache2 ~ "{mean} ({sd})",
mechvent ~ "{n} ({p}%)",
sex ~ "{n} ({p}%)",
apache3 ~ "{mean} ({sd})"),
label = list(
siten = "Number of ICUs",
patientn = "Number of Patients",
age = "Age",
apache2 = "APACHE II Score",
mechvent = "Mechanical Ventilation",
sex = "Sex",
apache3 = "APACHE III Score")) %>%
modify_header(stat_by = "**{level}**")
tbl <-
tbl_merge(
tbls = list(t1, t2),
tab_spanner = c("**Country**", "**Hospital Type**")
) %>%
modify_spanning_header(stat_0_1 ~ NA) %>%
modify_footnote(everything() ~ NA)
这会产生下表:
我想将某些行组合在一起以便于阅读。理想情况下,我希望表格看起来像这样:
我尝试使用 gt 包,代码如下:
tbl <-
tbl_merge(
tbls = list(t1, t2),
tab_spanner = c("**Country**", "**Hospital Type**")
) %>%
modify_spanning_header(stat_0_1 ~ NA) %>%
modify_footnote(everything() ~ NA) %>%
as_gt() %>%
gt::tab_row_group(
group = "Severity of Illness Scores",
rows = 7:8) %>%
gt::tab_row_group(
group = "Patient Demographics",
rows = 3:6) %>%
gt::tab_row_group(
group = "Numbers",
rows = 1:2)
这会生成所需的表:
我在执行此操作时遇到了一些问题。
当我尝试使用行名称(变量)时,会出现一条错误消息(无法子集化不存在的列...)。有没有办法通过使用变量名来做到这一点?对于较大的表,我在使用分配行名称的行号方法时遇到了一些麻烦。当单个变量在移动到末尾以说明分组行时丢失了它的位置时尤其如此。
有没有办法在管道进入 tbl_summary 之前执行此操作?虽然我喜欢这个表格的输出,但我使用 Word 作为统计报告的输出文档,并且希望能够在需要时(或由我的合作者)在 Word 中格式化表格。我通常使用 gtsummary::as_flextable 进行表输出。
再次感谢,
本
最佳答案
- When I try to use the row names (variables), an error message comes up (Can't subset columns that don't exist...). Is there a way to do this by using the variable names? With larger tables, I am getting into some trouble with using the row numbers method of assigning row names. This is particularly true when there is a single variable that loses its place as it's moved to the end to account for the grouped rows.
有两种方法可以解决这个问题,1. 为每个组构建单独的表,然后将它们堆叠起来,以及 2. 添加一个分组列到 .$table_body
然后按新的分组 tibble变量。
library(gtsummary)
library(dplyr)
packageVersion("gtsummary")
#> '1.3.6'
# Method 1 - Stack separate tables
t1 <- trial %>% select(age) %>% tbl_summary()
t2 <- trial %>% select(grade) %>% tbl_summary()
tbl1 <-
tbl_stack(
list(t1, t2),
group_header = c("Demographics", "Tumor Characteristics")
) %>%
modify_footnote(all_stat_cols() ~ NA)
# Method 2 - build a grouping variable
tbl2 <-
trial %>%
select(age, grade) %>%
tbl_summary() %>%
modify_table_body(
mutate,
groupname_col = case_when(variable == "age" ~ "Deomgraphics",
variable == "grade" ~ "Tumor Characteristics")
)
2.Is there a way to do this prior to piping into tbl_summary? Although I like the output of this table, I use Word as my output document for statistical reports and would like the ability to be able to format the tables in Word if need be (or by my collaborators). I usually use gtsummary::as_flextable for table output.
上面的示例在导出为 gt 格式之前修改了表格,因此您可以将这些示例导出为 flextable。然而,flextable 没有相同的内置标题行功能(或者至少我不知道它,并且不要在 as_flex_table()
中使用它),并且输出看起来像下表。我建议从 GitHub 安装 gt 的开发版本并导出为 RTF(受 Word 支持)——他们在过去几个月对 RTF 输出做了很多更新,它可能适合你。
关于r - 在 GTSummary 中对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65665465/
变量“Var2”默认设置为分类变量,而有时需要均值(sd)。所以我对如何修改它很感兴趣。 data_table_1 = data %>% dplyr::select(group, var1,
当我创建一个“自定义 pvalue 函数到 add_p()”时,我试图调整 p 值的位数,但发现函数“round”不起作用。 (参见代码“result$p % tbl_summary(by = t
我正在使用优秀的 R 包“gtsummary”创建汇总表,它确实帮助我高效准确地生成汇总表。但是我想知道是否可以像p值一样自动生成一些统计量,例如t值,F值和卡方? library(gtsummary
我正在尝试向 gtsummary 的行标签添加脚注表,但我不知道如何引用我想要的确切单元格。 预期输出 使用默认的 trial 数据集,我想在“药物 B”中添加一个脚注,写为“即安慰剂”: 特征N =
我有一个有四个结果的因变量。我使用 mlogit 包进行多项逻辑回归。 当我尝试使用 gtsummary 包呈现结果时,我的多项逻辑回归结果堆叠在一起(参见下面的代码和表格)。 有没有办法让结果并排在
我正在尝试对一些行/变量(分类的和连续的)进行分组,以帮助提高大型数据集中的表格可读性。 这是虚拟数据集: library(gtsummary) library(tidyverse) library(
有谁知道是否有可能从汇总表(tbl_summary()和add_p())中排除一些p值? 另外,我们可以更改所用测试的脚注吗? library(gtsummary) mtcars %>% tbl_su
我正在使用 gtsummary 包从逻辑回归生成表。 例如,我想使用试验数据中的阶段级别“T3”作为引用级别,而不是默认的“T1”。我怎样才能在这个示例代码中做到这一点? 我的目标是对单变量和多变量逻
我试图弄清楚如何在使用 gtsummary 时添加自定义选项——例如,pvalues、标题等的星号。 这是一个使用基本 mtcars 数据的可重现示例,以防它更有效...... library(tid
我正在使用gtsummary::tbl_summary()创建汇总表。这是一个示例数据: df tbl_summary() A 级的百分比是 50%,而不是 2/6 = 33.3%。百分比仅根据现有
我正在尝试将 {gtsummary} 表(特别是 tbl_regression() 输出)输出为图像。我正在使用 kableExtra::as_image()但结果不是很漂亮。下面是一个reprex,
我无法弄清楚在汇总分类变量时如何告诉 tbl_summary 函数显示小数位。它适用于像“mpg”这样的连续变量,但不适用于“cyl”。 library(tidyverse) library(gtsu
我想知道是否有一种简单的方法可以去除由 R 中的 gtsummary 包创建的回归表中的前导零?我喜欢这个包的功能,但不确定是否有一种简单的方法来格式化表格以符合 APA 指南(例如,p 值没有前导零
在使用 gtsummary() 包创建描述性表格时,我得到了一张很长的表格。是否可以将这样的表拆分为多个较短的表? 通过这个示例数据集,我想展示我的意思: library(gtsummary) # m
我正在尝试创建一个患者特征表(表 1),该表有效,但由于我的“by”变量有 10 个类别,因此它会溢出 PDF 页面。 我尝试截断类别名称,并将页面布局更改为横向,但 1 个类别仍然不在页面上。 您能
是否可以在 Shiny 的应用程序中使用 {gtsummary} 呈现表格? library(gtsummary) # make dataset with a few variables to sum
我想在 R 包 gtsummary 中使用 tbl_regression 生成的回归汇总表的变量名称中引入下标。任何人都可以提供有关如何执行此操作的指导吗?用于生成表和结果表的代码如下所示。我希望标签
我无法使用 gtsummary 编织成 pdf包裹。这是一个reprex: library(gtsummary) reg ...al \expandafter \let \cmrsideswitch
到此为止:r shiny reactive gt_summary table 我想要一个 gtsummary 表,其中包含以 react 方式 (Input$y) 从 SelectInput 字段中选
{gtsummary} 具有 tbl_svysummary() 函数,用于从 {survey} 包创建的 survey.design 对象生成汇总统计表. {gtsummary} website提供了
我是一名优秀的程序员,十分优秀!