问题描述
我正在尝试分析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
解决方法
尝试将lapply
与reformulate
一起使用来创建公式。
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)
}))