来自 {gtsummary} 的 tbl_uvregression() 函数的多元单变量 Cox 回归
Multiple univariate Cox regression with tbl_uvregression() function from {gtsummary}
我找不到如何使用来自 {gtsummary} 的 tbl_uvregression() 函数执行多单变量 Cox 回归。
这是我到目前为止的情况:
- 执行了多个单变量逻辑回归,其中:
tbl_uvregression(dataSOF, method = glm, y = death, method.args = list(family = binomial), exponentiate = T)
- 执行单变量 cox 回归,其中:
coxph(Surv(survival_days, survival_status) ~ age, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
- 执行多变量 cox 回归,其中:
coxph(Surv(survival_days, survival_status) ~ age+disease, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
但是我无法得到多个单变量cox回归...
我试过了:
tbl_uvregression(
dataSOF,
method=coxph,
y = Surv(time = survival_days, event = survival_status),
method.args = list(family = binomial),
exponentiate = T
)
但我收到以下错误:
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.
我正在处理的数据:
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"))
有什么建议吗?
非常感谢!
更新
另一个可重现的例子:
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)
使用您的示例数据,下面的代码有效。请注意,您提供的数据框中的变量名称与函数调用中的变量名称不匹配。
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
)
由 reprex package (v1.0.0)
创建于 2021-03-04
我找不到如何使用来自 {gtsummary} 的 tbl_uvregression() 函数执行多单变量 Cox 回归。
这是我到目前为止的情况:
- 执行了多个单变量逻辑回归,其中:
tbl_uvregression(dataSOF, method = glm, y = death, method.args = list(family = binomial), exponentiate = T)
- 执行单变量 cox 回归,其中:
coxph(Surv(survival_days, survival_status) ~ age, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
- 执行多变量 cox 回归,其中:
coxph(Surv(survival_days, survival_status) ~ age+disease, data = dataSOF) %>%
tbl_regression(exponentiate = TRUE)
但是我无法得到多个单变量cox回归...
我试过了:
tbl_uvregression(
dataSOF,
method=coxph,
y = Surv(time = survival_days, event = survival_status),
method.args = list(family = binomial),
exponentiate = T
)
但我收到以下错误:
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.
我正在处理的数据:
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"))
有什么建议吗? 非常感谢!
更新
另一个可重现的例子:
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)
使用您的示例数据,下面的代码有效。请注意,您提供的数据框中的变量名称与函数调用中的变量名称不匹配。
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
)