7

subset私はRの関数の引数がどのように機能するかを理解しようとしてきましたlm()。特に、次のコードは私には疑わしいようです。

 data(mtcars)
 summary(lm(mpg ~ wt,  data=mtcars))
 summary(lm(mpg ~ wt, cyl, data=mtcars))

いずれの場合も、回帰には32個の観測値があります

  dim(lm(mpg ~ wt, cyl  ,data=mtcars)$model)
  [1] 32  2
   dim(lm(mpg ~ wt  ,data=mtcars)$model)
  [1] 32  2

それでも、係数は(R²とともに)変化します。ヘルプは、この問題についてあまり多くの情報を提供していません。

サブセットフィッティングプロセスで使用される観測値のサブセットを指定するオプションのベクトル

4

1 に答える 1

13

一般的な原則として、サブセット化で使用されるベクトルは、論理 (すべての要素に対して TRUE または FALSE など) または数値 (数値など) のいずれかです。サンプリングを支援する機能として、R が数値の場合、サブセット数値ベクトルに現れると、同じ要素が複数回含まれます。

見てみましょうcyl

> mtcars$cyl
 [1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4

したがって、同じ長さの data.frame を取得していますが、行 6、行 6、行 4、行 6 などで構成されています。

自分でサブセット化すると、次のようになります。

> head(mtcars[mtcars$cyl,])
                mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Valiant        18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Valiant.1      18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Valiant.2      18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Merc 240D      24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Valiant.3      18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1

このようなことをするつもりでしたか?

summary(lm(mpg ~ wt, cyl==6, data=mtcars))
于 2012-07-04T11:23:54.600 に答える