我在使用glm.nb
包构建MASS
对象时遇到问题(尽管我对常规GLM也有同样的问题)。公式中的响应和大多数预测变量都是data.daily
中的列,但cb
是使用dlnm
包计算的交叉对象。
我对glm()
的理解是,首先在data
指定的对象的上下文中搜索公式组件,然后在公式所在的环境中搜索。公式({{1 }}和glm.formula
属于同一环境,但cb
报告无法找到glm()
。这是怎么回事?
cb
我唯一能想到的是我在循环中调用Browse[1]> glm.obj = glm.nb(glm.formula, data = data.daily)
Error during wrapup: object 'cb' not found
Browse[1]> environment(glm.formula)
NULL
Browse[1]> environment(cb)
NULL
Browse[1]> glm.formula
[1] "count_admitted ~ offset(log(pop)) + nowork + cb"
Browse[1]> ls()
[1] "cb" "data.daily" "glm.formula" "glm.list" "pred.list"
,而在循环开始之前计算glm.nb()
,但我对R中范围的理解是大括号吗不创建新的仅限范围的功能。
答案 0 :(得分:1)
我认为您不能将外部向量与指定为同一模型中的数据的data.frames
组合在一起。尝试:
glm.nb(glm.formula, data = cbind(cb = cb, data.daily))
这会将列附加到data.frame。