为什么在指定子集的同时为公式传递字符串参数时,R`glm`函数无法正常工作?

时间:2013-10-21 01:51:21

标签: r glm

glm的前两次调用正常工作,而最后一次调用则抛出错误。

为什么会出现这种情况,如果我想为公式使用字符串,并指定一个子集,是否有任何已知的解决方法?用例是我想在我自己的函数中将公式作为字符串传递,而不包装和展开原始公式。

library(ISLR)
foo =function() {
train=sample(10000, 5000, replace=F)
# both work
glm.fit = glm('default~income + balance', data=Default, family=binomial)
glm.fit = glm(default~income + balance, data=Default, family=binomial, subset=train)

# Does not work.
#glm.fit = glm('default~income + balance', data=Default, family=binomial, subset=train)
}
foo()

错误看起来像这样

Error in eval(expr, envir, enclos) : object 'train' not found              
Calls: foo ... eval -> model.frame -> model.frame.default -> eval -> eval  
Execution halted                                                           

更新:我已将示例放在函数中,因为它似乎只是函数内部的问题。

0 个答案:

没有答案