1
追加の計算を行うには、lm
のラッパーを作成しています。ラッパーが...
をlm
に渡したいのですが、lm
のweights
引数で問題が発生しています。省略記号の問題:lmに渡す
LmWrapper <- function(df, fmla, ...) {
est <- lm(fmla, df, ...)
list(model = est)
}
私はRは、どこの重みを検索する場所を知っていません
data(airquality)
LmWrapper(airquality, Ozone ~ Wind, weights = Temp)
、重み引数でラッパーを呼び出す場合:
Error in eval(expr, envir, enclos) :
..1 used in an incorrect context, no ... to look in
lm
ヘルプページが
すべて
weights
,subset
およびoffset
は、formula
の変数と同じ方法で評価されます。最初はdata
、その後はformula
です。
しかし、ラッパーは物事を変えるようです。
これを修正するにはどうすればよいですか?
上記のエラーのためtraceback()
は次のようになります、直接lm
を呼び出す
8: eval(expr, envir, enclos)
7: eval(extras, data, env)
6: model.frame.default(formula = fmla, data = df, weights = ..1,
drop.unused.levels = TRUE)
5: stats::model.frame(formula = fmla, data = df, weights = ..1,
drop.unused.levels = TRUE)
4: eval(expr, envir, enclos)
3: eval(mf, parent.frame())
2: lm(fmla, df, ...) at #2
1: LmWrapper(diamonds, price ~ carat, weights = depth)
だけで正常に動作:
lm(Ozone ~ Wind, airquality, weights = Temp)