Пожалуйста, обратите внимание на следующее:
Для создания кривой выживания можно использовать функцию survfit
пакета survival
.
Моя цель — написать функцию, которая (среди прочего) создает такую кривую, но эта функция должна работать с разными data.frames
, чьи имена столбцов также различаются. Также группирующая переменная будет зависеть от соответствующего набора данных.
Мне удалось передать функции разные имена data.frame
, но предоставление имени столбца для функции survfit
и Surv
у меня не работает.
Любая помощь приветствуется.
На мой взгляд, это проблема, отличная от простой передачи имени столбца data.frame
функции, как обсуждается здесь: Передать имя столбца data.frame в функцию
# required libraries
library(survival)
library(flexsurv)
#### Examples that work without own function ===================================
# survfit wit lung data
survfit(Surv(time = time, event = status) ~ 1, data = lung)
#> Call: survfit(formula = Surv(time = time, event = status) ~ 1, data = lung)
#>
#> n events median 0.95LCL 0.95UCL
#> 228 165 310 285 363
survfit(Surv(time = time, event = status) ~ sex, data = lung)
#> Call: survfit(formula = Surv(time = time, event = status) ~ sex, data = lung)
#>
#> n events median 0.95LCL 0.95UCL
#> sex=1 138 112 270 212 310
#> sex=2 90 53 426 348 550
# survfit with bc data
survfit(Surv(time = rectime, event = censrec) ~ 1, data = bc)
#> Call: survfit(formula = Surv(time = rectime, event = censrec) ~ 1,
#> data = bc)
#>
#> n events median 0.95LCL 0.95UCL
#> 686 299 1807 1587 2030
# Create variable function that takes on data specific arguments
SurvFun <- function(fun.time, fun.event, grouping = 1, fun.dat){
survfit(Surv(time = fun.time, event = fun.event) ~ grouping, data = fun.dat)
}
#### Own function that doesn't work ============================================
# This should work for data = lung
SurvFun(fun.time = time, fun.event = status, grouping = 1, fun.dat = lung)
#> Error in Surv(time = fun.time, event = fun.event): Time variable is not numeric
Создано 05 июля 2018 г. с помощью пакета reprex (v0.2.0).