Пожалуйста, примите во внимание следующее:
Чтобы создать кривую выживания, можно использовать функцию 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
Создано в 2018-07-05 по представ
пакет (v0.2.0).