我有一系列用于多变量逻辑回归的特征,但我想分别测试多个单变量逻辑回归的每个特征。
我试着像这样做一个循环
features <- c("f1","f2","f3","f4")
out <- list()
for (f in features) {
mod <- train(form = positive ~ f,
data = training,
method = "glm",
metric = "ROC",
family = "binomial")
out <- append(out,mod)
}我收到一个错误,说变量长度不同(在‘f’中找到)。我认为它没有将f识别为列名?我该如何解决这个问题呢?
发布于 2020-06-17 01:55:04
作为将来的参考,一个带有reprex的答案使用了@Rorschach探测到的相同的解决方案:
x <- runif(50, min = 0, max = 100)
z <- runif(50, min = 0, max = 100)
a <- runif(50, min = 0, max = 100)
b <- runif(50, min = 0, max = 100)
positive <- rbinom(50,1, 0.4)
training <- as.data.frame(cbind(x,z,a,b,positive = positive))
training$positive <- factor(training$positive)
library(caret)
features <- c("x","z","a","b")
out <- list()
for (f in features) {
mod <- train(form = as.formula(paste("positive ~ ", f)),
data = training,
method = "glm",
family = "binomial")
out <- append(out,mod)
}https://stackoverflow.com/questions/62413186
复制相似问题