循环回归列 r

loop regression columns r

我有一个这样的数据框

ID  matching_var    status  code1   code2
 1  1                0       1      0
 2  1                1       1      0
 3  2                0       0      1

我还有其他几个列,例如 code1 和 code2,直到 code25,我想进行这些回归:

fit1<-clogit(status~code1+strata(matching_variable),data=df)

fit2<-clogit(status~code2+strata(matching_variable),data=df)

fit25<-clogit(status~code25+strata(matching_variable),data=df

我的变量 code 1 到 code25 在我的 df 的第 4 到 29 列中

我想找到一种无需输入每个回归模型即可自动执行此操作的方法,我希望将所有回归结果集中在一个 table

我试过这个:

regression <- function(x){code<- x[,4:29]
 f <- as.formula(
paste("status ~", code, "+ strata(matching_var)"))
 clogit(f, data = x)
 }

result_reg<-lapply(df,regression)


lapply(result_reg, summary)

但它不起作用,其他几个帖子处理相同的主题,但我还没有设法找到解决我的问题的方法...

在此先感谢您的帮助

试试这个。我使用了 mtcars 数据集,因为你没有 post 你的数据。 此外,当您使用 non-common 函数时显式调用 library,例如 clogit

 df <- mtcars
    library(survival)
    regression <- function(column){
      f <- as.formula(
      paste("vs ~", column, "+ strata(carb)"))
    survival::clogit(f, data = df)
    }
    
    result_reg<-lapply(colnames(df)[9:11],regression)
    lapply(result_reg, summary)