3

前两个调用可以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                                                           

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

4

0 回答 0