Опасность Кокса в функции 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')),

Другие вопросы по тегам