如何循环变量并在R中存储每个变量的测试结果

问题描述

我正在尝试分析R中的多个变量,并希望存储结果。但是,该代码不起作用,请提供任何帮助。谢谢。

varibles <- colnames(mydata)
result <- data.frame(matrix(nrow = length(varibles),ncol = 2))
colnames(result) <- c("variable","coef")
for (i in 1:length(varibles)) {
  var=varibles[i] # this var return [1] 'variable1'
  result[i,1] <-var # this line does not change result[i,1] to var 
  var=mydata$var # this returns error message,UnkNown or uninitialised column: 'var'
  var=as.numeric(var)
  mod<-glm(y~var,family="binomial")
  res<-summary(mod)$coef
  result[i,2] <- as.character(res)
}
result

解决方法

尝试将lapplyreformulate一起使用来创建公式。

result <- do.call(rbind,lapply(varibles,function(x) {
           mod<-glm(reformulate(x,"y"),family="binomial")
           res <- summary(mod)$coef
           data.frame(variable = x,coef = res)
          }))