predict
lme4 のlmer
モデルのスタイル関数を書こうとしています。アイデアは、によって生成される種類の因子および変数レベルを含むデータフレームで予測関数が機能するということですexpand.grid
。
level_df <- expand.grid(a=1:3, b=4:6)
特定の効果/相互作用を文字列として計算するための式を取得できるところまで来ました。
formula_string <- "a * b + 3"
しかし、その数式をレベルデータフレームに適用できる唯一の方法 (この場合、a
andの各値の数式を評価するb
) は、かなりリベラルでおそらく危険なassign
andのようなものを使用することeval
です。
EffectFunction <- function(df_row, formula_string) {
l_cols <- colnames(df_row)
for (i in 1:ncol(df_row)) {
assign(l_cols[i], df_row[1, i])
}
parsed <- parse(text=formula_string)
df_row$effect_val <- eval(parsed)
return(df_row)
}
pred_results <- adply(
level_df,
1,
formula_string=formula_string,
EffectFunction
)
文字列とシンボル/変数名の間で変換するより安全で高速な方法はありますか?