R 从列表中传递glm预测值
我有一大套模型规范要测试,它们共享一个dv,但有唯一的IVs。在下面的示例中R 从列表中传递glm预测值,r,plyr,R,Plyr,我有一大套模型规范要测试,它们共享一个dv,但有唯一的IVs。在下面的示例中 foo <- data.frame(dv = sample(c(0,1), 100, replace=T), x1 = runif(100), x2 = runif(100)) 不幸的是,有人告诉我 Error in model.frame.default(formula = dv ~ i, data = foo, drop.unused
foo <- data.frame(dv = sample(c(0,1), 100, replace=T),
x1 = runif(100),
x2 = runif(100))
不幸的是,有人告诉我
Error in model.frame.default(formula = dv ~ i, data = foo, drop.unused.levels = TRUE):variable lengths differ (found for 'i')
很明显,我混淆了一些基本的东西——我需要以某种方式操纵原始的foo列表吗?问题是,
dv~I
不是一个公式i
是(在匿名函数中)表示包含字符值的变量的符号
试试这个:
bar <- list("dv~x1",
"dv~x2",
"dv~x1+x2",
"dv~x1*x2")
res <- llply(bar, function(i) glm(i, data = foo, family = binomial()))
bar问题在于dv~i
不是一个公式i
是(在匿名函数中)表示包含字符值的变量的符号
试试这个:
bar <- list("dv~x1",
"dv~x2",
"dv~x1+x2",
"dv~x1*x2")
res <- llply(bar, function(i) glm(i, data = foo, family = binomial()))
bar您的问题在于如何指定公式,因为函数i内部是一个变量。这将有助于:
glm(paste("dv ~", i), data = foo, family = binomial())
您的问题在于如何指定公式,因为在函数i内部是一个变量。这将有助于:
glm(paste("dv ~", i), data = foo, family = binomial())
太棒了,谢谢乔兰。我很感激你关于质量的建议,但是,在这种情况下,我有一套具体的型号规格。太棒了,谢谢joran。我非常感谢您对MASS
的建议,但是,在这种情况下,我考虑了一组特定的型号规格。这适用于任何配方,我尝试将其用于rpart以输入我选择的功能。这适用于任何配方,我尝试将其用于rpart以输入我选择的功能。