循环遍历变量列表以添加到基本生存模型,然后将关键输出保存在 table 中
Loop through a list of variables to add to a base survival model then keep the key output in a table
两部分问题:
首先,我有一个数据框中的 n 个变量列表,我想依次将其代入生存模型(从而创建 n 个新模型),并且从每个变量的输出中,我只想保留摘要 table与该变量相关的行(HR、SE 等)(因此 n 行 table)。
#create list of variables from dataset
bloods <- colnames(data)[c(123,127, 129:132, 135:140, 143:144, 190:195)]
然后循环创建一个新模型。以下不起作用,但不确定为什么...
for (i in 1:length(bloods)){
x <- coxph(Surv(time, event) ~ i + var1+var2+var3, data=data, na.action=na.omit)
}
不确定如何 select 并将摘要的第一行 table (summary(x)[7]
) 每次附加到 table?我想我必须在循环之前创建 table?
非常感谢任何帮助!
考虑 lapply
动态公式构建,这将生成汇总表列表:
bloods <- colnames(data)[c(123,127, 129:132, 135:140, 143:144, 190:195)]
sumtables <- lapply(bloods, function(i) {
# STRING INTERPOLATION WITH sprintf, THEN CONVERTED TO FORMULA OBJECT
iformula <- as.formula(sprintf("Surv(time, event) ~ %s + var1+var2+var3", i))
# RUN MODEL REFERENCING DYNAMIC FORMULA
x <- coxph(iformula, data=data, na.action=na.omit)
# RETURN COEFF MATRIX RESULTS
summary(x)[7][[1]]
})
两部分问题: 首先,我有一个数据框中的 n 个变量列表,我想依次将其代入生存模型(从而创建 n 个新模型),并且从每个变量的输出中,我只想保留摘要 table与该变量相关的行(HR、SE 等)(因此 n 行 table)。
#create list of variables from dataset
bloods <- colnames(data)[c(123,127, 129:132, 135:140, 143:144, 190:195)]
然后循环创建一个新模型。以下不起作用,但不确定为什么...
for (i in 1:length(bloods)){
x <- coxph(Surv(time, event) ~ i + var1+var2+var3, data=data, na.action=na.omit)
}
不确定如何 select 并将摘要的第一行 table (summary(x)[7]
) 每次附加到 table?我想我必须在循环之前创建 table?
非常感谢任何帮助!
考虑 lapply
动态公式构建,这将生成汇总表列表:
bloods <- colnames(data)[c(123,127, 129:132, 135:140, 143:144, 190:195)]
sumtables <- lapply(bloods, function(i) {
# STRING INTERPOLATION WITH sprintf, THEN CONVERTED TO FORMULA OBJECT
iformula <- as.formula(sprintf("Surv(time, event) ~ %s + var1+var2+var3", i))
# RUN MODEL REFERENCING DYNAMIC FORMULA
x <- coxph(iformula, data=data, na.action=na.omit)
# RETURN COEFF MATRIX RESULTS
summary(x)[7][[1]]
})