【问题标题】:Map or loop different variables in a Cox regression model [duplicate]在 Cox 回归模型中映射或循环不同的变量 [重复]
【发布时间】:2020-06-20 10:50:22
【问题描述】:

我希望运行几个 cox 回归模型,以保持生存函数相同并放置不同的预测变量,我想将每个模型保存在一个列表中。此外,我想从列表中的每个模型中获得整洁的输出。

下面是一个包含两个预测变量的示例,但实际数据框有超过 20 个预测变量。

# data frame with first 2 columns specifying time to event and event and rest as predictor variables
df <- some_data_frame 

#Cox Models 
cox_var1 <- coxph(Surv(time,event) ~ var1, data = df]
cox_var2 <- coxph(Surv(time,event) ~ var2, data = df]

#Tidy output of cox models
cox_summary_var1 <- broom:tidy(cox_var1, exponentiate = TRUE)
cox_summary_var2 <- broom:tidy(cox_var2, exponentiate = TRUE)

我对@9​​87654322@ 还很陌生。如何创建一个包含所有模型的列表,然后创建一个包含模型的所有整洁输出的第二个列表?

【问题讨论】:

    标签: r purrr cox-regression


    【解决方案1】:

    您可以遍历预测变量的名称并使用reformulate 即时创建公式。

    library(survival)
    library(purrr)
    
    #Replace 2 with number of var you have
    cox_model_list <- map(paste0('var', 1:2), 
                       ~coxph(reformulate(.x, "Surv(time,event)"), data = df))
    tidy_output_list <- map(cox_model_list, broom::tidy, exponentiate = TRUE)
    

    如果您不需要cox_model_list,您可以将broom 输出和coxph 组合在同一个map 中。您也可以在此处使用lapply 代替map

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2016-02-06
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      相关资源
      最近更新 更多