web-dev-qa-db-ja.com

モデルを構築するときに多くの変数を呼び出す短い式

Lm(...)で回帰モデルを構築しようとしています。データセットには多くの機能があります(> 50)。コードをlm(output~feature1+feature2+feature3+...+feature70)として書きたくありません。このコードを書くための略記法は何だろうと思っていました。

31
iinception

formulaのヘルプページで説明されているように、_._を使用できます。 _._は、「式に含まれていないすべての列」を表します。

lm(output ~ ., data = myData)

または、pasteを使用して手動で式を作成します。この例は、as.formula()ヘルプページからのものです。

_xnam <- paste("x", 1:25, sep="")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))
_

その後、このオブジェクトを回帰関数lm(fmla, data = myData)に挿入できます。

54
Chase

次のようなことも試してみてください:

lm(output ~ myData[,2:71], data=myData)

出力が最初の列であると仮定すると、feature1:feature70は次の70列です。

または

features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)

データの中で列がどこにあるかは関係ないので、おそらくよりスマートです。

ただし、NAの行が削除されている場合、問題が発生する可能性があります...

6
nzcoops