B_slash_
B_slash_

Reputation: 383

Multiple univariate Cox regression with tbl_uvregression() function from {gtsummary}

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!


UPDATE

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

Answers (1)

Daniel D. Sjoberg
Daniel D. Sjoberg

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
)

enter image description here Created on 2021-03-04 by the reprex package (v1.0.0)

Upvotes: 3

Related Questions