R 中具有 horizontally-oriented 个变量的治疗效果 table
Treatment effect table in R with horizontally-oriented variables
所以我对数据框进行了子集化以仅保留我感兴趣的 4 列。我想计算控制 (0) 和处理 (1) 观察的数量。我用 gtsummary 包计算了一些东西,但是变量是垂直方向的(像这里 http://www.danieldsjoberg.com/gtsummary/articles/tbl_summary.html),一个在另一个下面,这不是我想要的。我在 google 上搜索,但我看到的所有 table 也都是这个方向。
我在这里放了一张我想要获得的图片,如果你们中的一些人有任何想法的话!
我用来获取初始 table 的代码(与 link 中的相同)
install.packages("gtsummary")
library(gtsummary)
trial <- finaldf %>% select(treatment, 2digID,4digID,classificationsdescription)
trial %>% tbl_summary()
t2 <- trial %>% tbl_summary(by = treatment)
我无法放置真实数据,但我创建了一个看起来像我的数据的示例:
_2ID <- c(38,38,38,38,38,38,38,38,38,38,80,80,80,80,80,80,80,80,80,80)
_4ID <- c(3837,3837,3837,3812,3812,3896,3894,3894,3877,3877, 8099,8099,8027,8027,8027,8033,8033,8064,8064,8022)
descriptions <- c('ILL1','ILL1','ILL1', 'ILL2','ILL2','ILL3','ILL4','ILL4','ILL5','ILL5','ILL1','ILL1','ILL2','ILL2','ILL2','ILL3','ILL3','ILL4','ILL4','ILL5')
trt <-c(0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0)
df.data <- data.frame(_2ID,_4ID,descriptions, trt)
更新 - 已解决
我想我设法解决了这个问题,即使我的输出是数据框而不是“publication-ready” table :
install.packages("reshape2")
library(reshape2)
data_wide <- dcast(df,_2digID+_4digID+descriptions ~ treatment, value.var="counts")
但我不确定这是否给出了正确的数字。
下面的示例让您 关闭,但并不完全符合您的要求。我喜欢能够支持这样的表的想法,我会将其添加到要实现的功能列表中!
library(gtsummary)
#> #Uighur
packageVersion("gtsummary")
#> [1] '1.4.1'
tbl <-
trial %>%
mutate(
grade = paste("Grade", as.character(grade)),
stage = paste("Stage", as.character(stage))
) %>%
tbl_strata(
strata = c(stage, grade),
~ .x %>%
tbl_summary(by = trt,
include = response,
type = response ~ "categorical",
missing = "no",
statistic = response ~ "{n}") %>%
modify_header(all_stat_cols() ~ "**{level}**"),
.combine_with = "tbl_stack"
) %>%
as_flex_table()
- Table 因为太长被截断了!
由 reprex package (v2.0.0)
于 2021-07-14 创建
所以我对数据框进行了子集化以仅保留我感兴趣的 4 列。我想计算控制 (0) 和处理 (1) 观察的数量。我用 gtsummary 包计算了一些东西,但是变量是垂直方向的(像这里 http://www.danieldsjoberg.com/gtsummary/articles/tbl_summary.html),一个在另一个下面,这不是我想要的。我在 google 上搜索,但我看到的所有 table 也都是这个方向。
我在这里放了一张我想要获得的图片,如果你们中的一些人有任何想法的话!
我用来获取初始 table 的代码(与 link 中的相同)
install.packages("gtsummary")
library(gtsummary)
trial <- finaldf %>% select(treatment, 2digID,4digID,classificationsdescription)
trial %>% tbl_summary()
t2 <- trial %>% tbl_summary(by = treatment)
我无法放置真实数据,但我创建了一个看起来像我的数据的示例:
_2ID <- c(38,38,38,38,38,38,38,38,38,38,80,80,80,80,80,80,80,80,80,80)
_4ID <- c(3837,3837,3837,3812,3812,3896,3894,3894,3877,3877, 8099,8099,8027,8027,8027,8033,8033,8064,8064,8022)
descriptions <- c('ILL1','ILL1','ILL1', 'ILL2','ILL2','ILL3','ILL4','ILL4','ILL5','ILL5','ILL1','ILL1','ILL2','ILL2','ILL2','ILL3','ILL3','ILL4','ILL4','ILL5')
trt <-c(0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,1,1,0)
df.data <- data.frame(_2ID,_4ID,descriptions, trt)
更新 - 已解决
我想我设法解决了这个问题,即使我的输出是数据框而不是“publication-ready” table :
install.packages("reshape2")
library(reshape2)
data_wide <- dcast(df,_2digID+_4digID+descriptions ~ treatment, value.var="counts")
但我不确定这是否给出了正确的数字。
下面的示例让您 关闭,但并不完全符合您的要求。我喜欢能够支持这样的表的想法,我会将其添加到要实现的功能列表中!
library(gtsummary)
#> #Uighur
packageVersion("gtsummary")
#> [1] '1.4.1'
tbl <-
trial %>%
mutate(
grade = paste("Grade", as.character(grade)),
stage = paste("Stage", as.character(stage))
) %>%
tbl_strata(
strata = c(stage, grade),
~ .x %>%
tbl_summary(by = trt,
include = response,
type = response ~ "categorical",
missing = "no",
statistic = response ~ "{n}") %>%
modify_header(all_stat_cols() ~ "**{level}**"),
.combine_with = "tbl_stack"
) %>%
as_flex_table()
- Table 因为太长被截断了!
由 reprex package (v2.0.0)
于 2021-07-14 创建