MASS
パッケージを使用してglm.nb
オブジェクトを構築するのに問題があります(通常のGLMでも同じ問題があります)。式中の応答および大部分の予測子は、data.daily
の列ですが、cb
はdlnm
パッケージを使用して計算されたクロスバスオブジェクトです。データフレームが指定されているときに、データフレームの外部のGLMプレディクタが見つかりません
glm()
の私の理解は、式成分は最初式であることが環境にその後data
で指定されたオブジェクトのコンテキスト内で検索され、ということである。式(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"
私は考えることができる唯一のことは、私はループが始まる前にcb
が計算されるのに対し、ループ内からglm.nb()
を呼んでいるが、Rに範囲を理解し、私は中括弧は、新しいを作成しないということであるということですスコープ専用の関数。
'data.daily'に' cb'を列として追加できない理由はありますか? –
私はベクトルだけを列として添付できると仮定しましたが、そうでないことが判明しました:) – rensa