使用 gtsummary 创建一个包含权重数据的 tbl_continuous
Creating a tbl_continuous with weight data using gtsummary
问题:
无法找到创建 tbl_continuous
加权数值变量的方法。我正在使用 tbl_svysummary
创建我的分类变量 tables,但是当我尝试对数值变量 tables 做同样的事情时它没有用。注意:我不是在寻找数字变量的一般平均值,而是按分类变量分隔或分组。
尝试:
例如,我在函数 tbl_continuous
的帮助下创建了这个 table,它正是我想要的:我的数字变量的平均值,但由我的分类变量的水平.唯一的问题是我无法在此函数中插入权重变量。
```{r}
base2 %>%
as_label() %>%
select(ing_cap, ano, nacional, dominio) %>%
tbl_continuous(variable = ing_cap,
by = ano,
statistic = list(everything() ~ "{median}"))
```
此外,我一直在通过以下方式使用 srvyr
包创建加权数据:
base2 %>%
labelled::drop_unused_value_labels() %>%
as_label() %>%
as_survey_design(weight = fac500a)
可以添加到解决方案中。
要求:
创建相同的 table(如图所示),但使用权重变量。我的数据中的权重变量称为 fac500a
.
我的数据:
我的数据可以从我的 github 存储库下载并且具有以下尺寸:
> dim(base2)
[1] 108103 44
https://github.com/aito123/quarto_blog/raw/master/posts/tablas_tesis/base2.sav
(dput
输出很长)
我当前的包裹:
目前我正在使用这个 r 包:tidyverse, srvyr, gtsummary, sjlabelled, haven
结论:
如果需要提供更多信息,请告诉我。
gtsummary 包不会为调查数据导出 tbl_continuous()
的类似函数。但是你可以构造table。示例如下!
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.6.0'
svy_trial <- survey::svydesign(ids = ~1, data = trial, weights = ~1)
tbl <-
svy_trial %>%
tbl_strata2(
strata = grade,
~ .x %>%
tbl_svysummary(
by = trt,
include = age,
missing = "no",
label = list(age = .y)
) %>%
modify_header(all_stat_cols() ~ "**{level}**"),
.combine_with = "tbl_stack",
.combine_args = list(group_header = NULL)
) %>%
modify_table_body(
~ .x %>%
mutate(variable = "grade", row_type = "level") %>%
tibble::add_row(
row_type = "label",
variable = "grade",
label = "Grade",
.before = 1L
)
) %>%
modify_column_indent(columns = label, rows = row_type == "level") %>%
bold_labels() %>%
modify_spanning_header(all_stat_cols() ~ "**Treatment**") %>%
modify_footnote(all_stat_cols() ~ "Age: Median (IQR)")
由 reprex package (v2.0.1)
创建于 2022-05-16
问题:
无法找到创建 tbl_continuous
加权数值变量的方法。我正在使用 tbl_svysummary
创建我的分类变量 tables,但是当我尝试对数值变量 tables 做同样的事情时它没有用。注意:我不是在寻找数字变量的一般平均值,而是按分类变量分隔或分组。
尝试:
例如,我在函数 tbl_continuous
的帮助下创建了这个 table,它正是我想要的:我的数字变量的平均值,但由我的分类变量的水平.唯一的问题是我无法在此函数中插入权重变量。
```{r}
base2 %>%
as_label() %>%
select(ing_cap, ano, nacional, dominio) %>%
tbl_continuous(variable = ing_cap,
by = ano,
statistic = list(everything() ~ "{median}"))
```
此外,我一直在通过以下方式使用 srvyr
包创建加权数据:
base2 %>%
labelled::drop_unused_value_labels() %>%
as_label() %>%
as_survey_design(weight = fac500a)
可以添加到解决方案中。
要求:
创建相同的 table(如图所示),但使用权重变量。我的数据中的权重变量称为 fac500a
.
我的数据:
我的数据可以从我的 github 存储库下载并且具有以下尺寸:
> dim(base2)
[1] 108103 44
https://github.com/aito123/quarto_blog/raw/master/posts/tablas_tesis/base2.sav
(dput
输出很长)
我当前的包裹:
目前我正在使用这个 r 包:tidyverse, srvyr, gtsummary, sjlabelled, haven
结论:
如果需要提供更多信息,请告诉我。
gtsummary 包不会为调查数据导出 tbl_continuous()
的类似函数。但是你可以构造table。示例如下!
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.6.0'
svy_trial <- survey::svydesign(ids = ~1, data = trial, weights = ~1)
tbl <-
svy_trial %>%
tbl_strata2(
strata = grade,
~ .x %>%
tbl_svysummary(
by = trt,
include = age,
missing = "no",
label = list(age = .y)
) %>%
modify_header(all_stat_cols() ~ "**{level}**"),
.combine_with = "tbl_stack",
.combine_args = list(group_header = NULL)
) %>%
modify_table_body(
~ .x %>%
mutate(variable = "grade", row_type = "level") %>%
tibble::add_row(
row_type = "label",
variable = "grade",
label = "Grade",
.before = 1L
)
) %>%
modify_column_indent(columns = label, rows = row_type == "level") %>%
bold_labels() %>%
modify_spanning_header(all_stat_cols() ~ "**Treatment**") %>%
modify_footnote(all_stat_cols() ~ "Age: Median (IQR)")