読者です 読者をやめる 読者になる 読者になる

data.frame() で$を使わずに変数を指定する方法

data.frame()でデータにアクセスするとき,

data <- data.frame(x=2, y=3)
data$x*data$y
6

のように,(データフレーム名)$(列名)でデータにアクセスできる.
これだと,いちいちデータフレーム名を指定するので面倒.
そこで,attach()関数を利用する.

data <- data.frame(x=2, y=3)
attach(data)
x*y
6

簡単!

ただし,この方法ではデータフレーム内の変数(列名)と同じ名前のグローバル変数が存在するとき,グローバル変数が優先されてしまう(a_bickyさんからコメントをいただきました).
つまり,

data <- data.frame(x=2, y=3)
x <- 5
attach(data)
x*y
15

となってしまう.
そこでより確実かつ安全な方法として,with()関数を用いる方法がある.

data <- data.frame(x=2, y=3)
x <- 5
with(data, x*y)
6

より確実で正しい結果が得られる.