我希望对数据框中的每个变量运行一整套回归,然后在循环过程中将每个回归的残差偏差值存储在新向量中。
该帧称为“cw”。前几个变量只是元数据,所以忽略它们。我尝试以下方法:
deviances<-c()
for (x in colnames(cw)[1:8]){deviances[x]<-NA}
for (x in colnames(cw)[8:27]){
model<-glm(cwonset ~ x, fmaily = binomial, data = cw)
append(deviances, model$deviance)
}
然而,它给出了错误:
Error in model.frame.default(formula = cwonset ~ x, data = cw, drop.unused.levels = TRUE) :
variable lengths differ (found for 'x')
知道为什么吗?
答案 0 :(得分:2)
没有数据,我不得不依靠mtcars
来帮助你,也不需要for
循环。我假设mpg
为因变量
逻辑:sapply
帮助我循环遍历每个colname,然后我只是回归。它内部是一个for
循环
sapply(colnames(mtcars[-1]), function(x) {
form <- as.formula(paste0("mpg~", x))
model <- glm(form, data = mtcars)
model$deviance})
# cyl disp hp drat wt qsec vs am gear carb
# 308.3342 317.1587 447.6743 603.5667 278.3219 928.6553 629.5193 720.8966 866.2980 784.2711