すべての問題

0 投票する
2 に答える
131 参照

r - 「lm」モデルを effectsize::effectsize() に渡すと、stats::model.frame() に関するエラーが発生するのはなぜですか?

をラップする関数を作成するときに、奇妙な状況に直面していますlm()stats::model.frame()具体的には、関数のモデル出力を に渡すときに関連するエラーが発生しeffectsize::effectsize()ます。

次の例では、 と の 2 つのシナリオがAありBます。では、最初にオブジェクトを作成してから に渡すA関数を定義します。この関数は class のオブジェクトを返します。そのオブジェクトを に渡すと、エラーが発生します。formulamy_formula <- as.formula(paste0(y, "~", x))lm()"lm"effectsize::effectsize()

stats::model.frame(formula = my_formula, data = data_std, drop.unused.levels = TRUE) のエラー: オブジェクト 'my_formula' が見つかりません

不思議なことに、同じオブジェクトを に渡すstats::model.frame()と動作します。

シナリオでは、プリエンプティブ オブジェクトではなく、B内で式を指定する関数を作成します。lm()そのシナリオでは、出力をeffectsize()作品に渡します。

再現可能な例

reprex パッケージ(v2.0.0)により 2021-08-15 に作成

シナリオ A (B ではなく) でエラーが発生する理由と、エラーが発生しないのになぜeffectsize()失敗するのstats::model.frame()ですか?