Reputation: 383
I can not find how to perform multiple univariate Cox regression with tbl_uvregression() function from {gtsummary}.
Here is were I am so far :
tbl_uvregression(dataSOF, method = glm, y = death, method.args = list(family = binomial), exponentiate = T)
coxph(Surv(survival_days, survival_status) ~ age, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
coxph(Surv(survival_days, survival_status) ~ age+disease, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
But I can not get multiple univariate cox regression...
I tried :
tbl_uvregression(
dataSOF,
method=coxph,
y = Surv(time = survival_days, event = survival_status),
method.args = list(family = binomial),
exponentiate = T
)
But I get the following error:
Erreur : Problem with `mutate()` input `model`.
x Argument family not matched
i Input `model` is `map(...)`.
Run `rlang::last_error()` to see where the error occurred.
The data I am working with:
dput(dataSOF[1:10, ])
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), age = c(62,
57, 67, 74, 71, 67, 46, 71, 53, 63), disease = c(0, 1, 1, 1,
1, 0, 1, 0, 0, 0), death = c(0, 0, 1, 0, 1, 1, 0, 1, 0, 1), censored_survival_days = c(60,
60, 60, 60, 60, 60, 60, 60, 60, 60), censored_survival_status = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1)), row.names = c(NA, -10L), class = c("tbl_df",
"tbl", "data.frame"))
Any advices? Huge thanks in advance!
Another reproductible example:
dataAAV3 <- structure(list(age = c(62, 57, 67, 46, 53, 63, 60, 77, 69, 86
), sexe = c(1, 1, 1, 1, 1, 1, 0, 1, 0, 1), survie_sans_deces_cens5 = c(60,
60, 60, 60, 60, 60, 60, 20, 60, 8), status_deces_cens5 = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L), .Label = c("1", "2"), class = "factor")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))```
library(gtsummary)
#> Warning: le package 'gtsummary' a été compilé avec la version R 4.0.3
tbl_uvregression(
dataAAV3,
method=coxph,
y = Surv(time = survie_sans_deces_cens5, event = status_deces_cens5),
exponentiate = TRUE)
#> Warning in .select_to_varnames(select = !!y, data = data, arg_name = "y"):
#> redémarrage de l'évaluation d'une promesse interrompue
#> Error: Specify one, and only one, of `x` and `y`. This function can
#> create univariate regression models holding either a covariate or outcome
#> constant.
Created on 2021-03-04 by the reprex package (v1.0.0)
Upvotes: 1
Views: 3213
Reputation: 11719
Using your example data, the code below works. Note, the variable names in the data frame you provided did not match variable names in the function calls.
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.3.7'
library(survival)
dataSOF <-
structure(
list(
ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
age = c(62, 57, 67, 74, 71, 67, 46, 71, 53, 63),
disease = c(0, 1, 1, 1, 1, 0, 1, 0, 0, 0),
death = c(0, 0, 1, 0, 1, 1, 0, 1, 0, 1),
censored_survival_days = c(60, 60, 60, 60, 60, 60, 60, 60, 60, 60),
censored_survival_status = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
),
row.names = c(NA, -10L),
class = c("tbl_df", "tbl", "data.frame")
)
tbl_uvregression(
dataSOF,
method=coxph,
y = Surv(time = censored_survival_days, event = censored_survival_status),
exponentiate = TRUE,
include = -ID
)
Created on 2021-03-04 by the reprex package (v1.0.0)
Upvotes: 3