Проблема:
Не могу найти способ создать tbl_continuous
взвешенной числовой переменной. Я использую tbl_svysummary
для создания таблиц категориальных переменных, но это бесполезно, когда я пытаюсь сделать то же самое с таблицами числовых переменных. Примечание. Я не ищу общее среднее значение моей числовой переменной, но разделяю или группирую категориальную переменную.
Пытаться:
Например, я создал эту таблицу с помощью функции tbl_continuous
, которая делает именно то, что я хочу: среднее значение моей числовой переменной, но по уровням моей категориальной переменной. Единственная проблема в том, что я не могу вставить переменную веса в эту функцию.
```{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)
Можно добавить к решению.
Запрос:
Создайте такую же таблицу (показанную на изображении), но с переменной веса. Моя переменная веса в моих данных называется 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()
для данных опроса. Но вы можете построить таблицу. Пример ниже!
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)")
Created on 2022-05-16 by the reprex package (v2.0.1)
он находится в списке для создания tbl_custom_svysummary()
(tbl_custom_summary()
поддерживает версию tbl_continuous()
). Но на данный момент это не является приоритетом, и я понятия не имею, когда мы к этому приступим.
Спасибо Даниил за ответ, я применю его к своей проблеме. Было бы здорово реализовать tbl_svycontinuous(), я думаю, это заполнило бы пробел в данных опроса. С уважением.