最近の宿題で、変数を追加するたびに 27 の線形モデルを実行するように指示されました (目標は、R 2の変化と調整済み R 2の変化をプロットすることでした)。このような数式をアルゴリズムで作成するのは難しいと思いました。私が最終的に使用したコードは次のようになりました (データ フレームの最初の列は従属変数であり、残りはすべて将来の独立変数であることに注意してください。
make.formula <- function(howfar) {
formula <- c()
for (i in 1:howfar) {
if (i == 1) {
formula <- paste(formula, names(d)[i], '~')}
else if (i == howfar) {
formula <- paste(formula, names(d)[i], '')
}
else {
formula <- paste(formula, names(d)[i], '+')}
}
return(formula)
}
formulas <- lapply(seq(2, length(d)), make.formula)
formulas <- lapply(formulas, as.formula)
fits <- lapply(formulas, lm, data = d)
これは機能しますが、理想とはほど遠いようです。私の印象では、R で for ループを使用して行っていることは、おそらく最善の方法で行われているわけではありません。特定のデータ フレームの数式をアルゴリズムで構築する簡単な方法はありますか?