簡體   English   中英

使用 tidyr 運行多個 Cox-PH 模型

[英]Running multiple Cox-PH models with tidyr

我有一個來自生存 package 的常規survival Surv

s <- Surv(sample(100:150, 5), sample(c(T, F), 5, replace = T))

以及多個變量的矩陣;

df <- data.frame(var1 = rnorm(5),
                 var2 = rnorm(5),
                 var3 = rnorm(5))

我需要分別為每個變量安裝 Cox-PH model。 我的代碼目前使用如下循環:

for (v in colnames(df)) {
    coxph(s ~ df[[v]])
}

當然,現實中有成千上萬的變量,這個過程需要一點時間。 我想按照此處給出的答案嘗試使用tidyr完成所有操作,但我有點難過,因為 predictand 不是一個因素,它是一個生存 object,所以我不太知道如何處理它作為一個小問題。

假設您s響應是生存 model,您可以使用類似於您鏈接到的答案的嵌套 dataframe,然后 map model 到不同的變量:

圖書館(整潔的宇宙)

df_nested <- df %>% pivot_longer(cols = var1:var3) %>% group_by(name) %>% nest()


surv_model <- function(df) {
  coxph(s ~ df$value)
}

df_nested <- df_nested %>% mutate(model = map(data, surv_model))

df_nested
# A tibble: 3 x 3
# Groups:   name [3]
  name  data             model  
  <chr> <list>           <list> 
1 var1  <tibble [5 x 1]> <coxph>
2 var2  <tibble [5 x 1]> <coxph>
3 var3  <tibble [5 x 1]> <coxph>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM