'Is it possible to create a stratified table (tbl_strata) using tbl_svysummary()?
I am pretty new to survey data and gtsumarry package.
I'm trying to create a stratified table from the survey data using the following code, and I get the error "Error: Problem with mutate()
input tbl
".
# Reading the subset of the data
fileUrl <- "https://raw.github.com/Shadi-Sadie/Paper-1-Cancer-Screening-and-Immigrants/master/Cleaned%20Data/subset.csv"
SData<-read.csv( fileUrl , header = TRUE, sep ="," )
# Setting the weight
options( "survey.replicates.mse" = TRUE)
svy <- svrepdesign(repweights = "PWGTP[0-9]+",
weights = ~PWGTP,
combined.weights = TRUE,
type = "JK1",
scale = 4/80, rscales = rep(1, 80),
data = SData)
# creating the table
SData %>%
select(CITG, HICOV, ESRG , EXPANSION) %>%
tbl_strata(
strata = CITG,
.tbl_fun =
~ .x %>% tbl_svysummary(
by = EXPANSION,
include = c(CITG, HICOV, ESRG , EXPANSION),
label = list(CITG ~ "Nativity",
HICOV~ "Any health insurance",
ESRG~ "Employment",
EXPANSION ~ "Expansion" )
)
)
If it is possible to use tbl_svysummary()
with the tbl_strata()
could anyone tell me where I'm doing wrong?
Solution 1:[1]
Thanks for updating with a reproducible post. I made the following changes:
- You were passing the data frame to
tbl_strata()
and it needed to be updated to the survey design object. - The stratifying variable should no be listed in the
tbl_summary(include=)
argument.
Happy Porgramming!
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.6.0'
fileUrl <- "https://raw.github.com/Shadi-Sadie/Paper-1-Cancer-Screening-and-Immigrants/master/Cleaned%20Data/subset.csv"
SData <- read.csv(fileUrl, header = TRUE, sep = ",")
# Setting the weight
options("survey.replicates.mse" = TRUE)
svy <- survey::svrepdesign(
repweights = "PWGTP[0-9]+",
weights = ~PWGTP,
combined.weights = TRUE,
type = "JK1",
scale = 4 / 80, rscales = rep(1, 80),
data = SData
)
# creating the table
tbl <-
svy %>%
tbl_strata(
strata = CITG,
.tbl_fun =
~ .x %>% tbl_svysummary(
by = EXPANSION,
include = c(HICOV, ESRG, EXPANSION),
label = list(
HICOV = "Any health insurance",
ESRG = "Employment",
EXPANSION = "Expansion"
)
)
)
Created on 2022-05-01 by the reprex package (v2.0.1)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |