解決策は使用することです
with(data=imp2, exp=glm((hyp==2)~bmi+chl, family=binomial , subset=(age==1) ))
(私は思う)あなたの質問の問題は、関数...
内での使用です。glm.mids
これらは関数の引数で使用され、「glm に渡される追加のパラメーター」を許可します。ただし、関数内の呼び出しに...
渡されると、この方法では処理されません。には、 「glm の場合: 直接指定されていない場合にデフォルトの制御引数を形成するために使用される引数」があります。したがって、追加の引数は機能しません。glm
glm.mids
?glm
...
これを確認するには、関数を単純化します
f1 <- function (formula, family = binomial, data, ...)
{
glm(formula, family = family, data = data, ...)
}
f1(formula=((hyp==2)~bmi+chl), data=nhanes, subset=(age==2))
#Error in eval(expr, envir, enclos) :
# ..1 used in an incorrect context, no ... to look in
したがって、サブセット引数はglm
関数呼び出しに渡されません
Rからの回答を使用して: R 関数内の glm に引数を渡すと、関数をわずかに変更できます。
f2 <- function (formula, family = binomial, data, ...)
{
eval(substitute(glm(formula, family = family, data = data, ...)))
}
# This now runs
f2(formula=((hyp==2)~bmi+chl), data=nhanes, subset=(age==2))
# check
glm((hyp==2)~bmi+chl, data=nhanes, family="binomial", subset=(age==2))
を使用するsubstitute
と、関数環境からの引数が置き換えられます (これには詳細が必要です - お気軽に更新してください)