加速包含coxph函数调用的for循环

时间:2018-08-16 19:04:32

标签: r performance for-loop functional-programming survival-analysis

好的。因此,这与我之前发布的one类似,但我仍然没有令人满意的解决方案。

正如您将在下面看到的,我使用了一些示例数据来构建Cox PH模型,然后将其传递到包含for循环和函数predictSurvProb的自定义函数,该函数来自pec,最终填充了预先分配的空向量prediction

我尝试使用cmpfun中的compiler。但是,性能没有改善。我是注定要以这样慢的处理速度生活还是有什么方法可以加快处理速度?我无法用C ++编写代码,因此Rcpp不是我想象的选项。

谢谢。

require(dplyr, survival, pec)

cox_model <- coxph(Surv(time, status) ~ sex, data = lung)

surv_preds <- function(model, query) {

  prediction <- vector(mode = "numeric", length = nrow(query))
  time <- 30

  for(i in 1:nrow(query)) {
    prediction[i] <- predictSurvProb(model, newdata = query[i, ], times = query[i, "time"] + time)
  }
  prediction
}

surv_preds(cox_model, lung)

1 个答案:

答案 0 :(得分:0)

在尝试了C ++和并行计算之后,我发现仅将因子变量转换为整数就可以大大改善我的应用程序。改进使处理时间从近一周减少到大约60小时!

我怀疑这仍然不是最有效的解决方案,但现在必须这样做。