1. ホーム
  2. r

[解決済み] データフレームから多変数の数式を簡潔に書くには?

2022-05-15 08:21:37

質問

応答変数と3つの共変量を含むデータがあるとします(おもちゃのような例です)。

y = c(1,4,6)
d = data.frame(x1 = c(4,-1,3), x2 = c(3,9,8), x3 = c(4,-4,-2))

データに線形回帰を当てはめたい。

fit = lm(y ~ d$x1 + d$x2 + d$y2)

個々の共変量を書き出さなくてもよいように、数式を書く方法はありますか?例えば、以下のようなものです。

fit = lm(y ~ d)

(データフレーム内の各変数を共変量にしたいのです。) 実はデータフレーム内に50個の変数があるので、それを書き出すのを避けたいので聞いているのです。 x1 + x2 + x3 + etc .

どのように解決するのですか?

すべての変数を意味する数式で使用できる特別な識別子があります。 . 識別子です。

y <- c(1,4,6)
d <- data.frame(y = y, x1 = c(4,-1,3), x2 = c(3,9,8), x3 = c(4,-4,-2))
mod <- lm(y ~ ., data = d)

このように、1つ以外の変数を使うこともできます(この場合、x3は除外されます)。

mod <- lm(y ~ . - x3, data = d)

技術的には . の意味は すべての変数 ではない 式にすでに記述されている . 例えば

lm(y ~ x1 * x2 + ., data = d)

ここで .x3 として x1 そして x2 はすでに式に含まれています。