Опасность Кокса в функции R
У меня проблема со ссылкой на переменную в R.
Ищите мою простую функцию:
CoxStep <- function(dataset,a,b){
m1 = coxph(Surv(b,a)~.-dataset[,b]-dataset[,a] ,data=dataset)
summary(m1)
}
Я вызываю функцию следующим образом:
CoxStep (данные, Alive1, FU_3M)
где FU_3M - это столбец времени. Alive1 - это столбец события, а data - это мой набор данных, который содержит переменные ниже и другие переменные.
Функция не видит этого Alive1 и FU_3M.
Не могли бы вы помочь мне? Любое предложение?
1 ответ
Легкое решение состоит в том, чтобы ваша функция приняла формулу в качестве аргумента:
CoxStep <- function(dataset, form){
m1 = coxph(form, data=dataset)
summary(m1)
}
а затем позвонить с CoxStep(dataset, Surv(a, b) ~ . - a - b)
,
Вы можете создать вспомогательную функцию, если хотите использовать эту формулу:
my_form = function(a, b) {
as.formula(sprintf('Surv(%1$s, %2$s) ~ . - %1$s - %2$s', a, b)
}
my_form
можно вызывать со строками, например, my_form('a', 'b')
так что вы могли бы положить все это вместе с CoxStep(dataset, my_form('a', 'b'))
,