05. オブジェクトと代入(付値)


オブジェクトと代入(付値)

R が作ったり操作した実体はオブジェクト(object)と呼ばれる.変数,数の配列,文字列関数,データ,関数その他全てがそれにあたる.オブジェクトは単なる「モノ」であるという理解でよい.「オブジェクトが・・・」 と言われたら「ああ,変数だか数値だか何かがあるんだなあ」と考えてもらえればよく.難しく考える必要は無い.

オブジェクトには代入(付値)によって名前をつけることが出来る(変数名はローマ字や数字を使うことが出来,この 2 つを組み合わせることも出来るが,変数名の先頭は数字にしてはいけない(エラーが出る).例えば,A3 という変数例は許されるが,3A という変数名は許されない.).普通のプログラムで云えば変数に数値などを代入する動作に当たり,代入によって名付けられたオブジェクトはその名前で参照することが出来る.

以下の例は x に値 2 を代入する例で,代入した名前は後に入力する式の中で自由に使うことが出来る.

 
 x <- 2
 x

[1] 2

 x + 3

[1] 5

式の中でオブジェクトが使われた場合,それは代入された値を意味する.例えば x <- 2 とした後で x + 3 と入力すれば,これは 2 + 3 と認識される.また,式の中で使われた名前にその式を評価した結果を再度代入することも出来,古い値が捨てられて新しい値が保存される.さらに,変数の値を別の変数にコピーすることも出来る.

 
 x <- 2
 x <- 3
 x

[1] 3

 y <- x

代入を行う場合は以下の演算子・関数を使うことが出来る.通常は <- を使う(例えば,y <- x <- 10 と,一度に複数のオブジェクトに値を代入することも出来る.).

代入演算子

<-

->

=

assign("変数名", 値)

以下のように丸括弧 () で囲むと,代入と表示を同時に行なう.

 
 (x <- 1:4)

[1] 1 2 3 4

ただし,以下の名前は R の処理系によって予約されているので,オブジェクトの名前として用いることは出来ない.

break

else

for

function

if

TRUE

in

next

repeat

return

while

FALSE

関数 objects() を使うことで,現在どんなオブジェクトがあるかを調べることが出来る.また,前に定義したオブジェクトを消す場合(例えば x の定義や x に入っている値を消したい場合)は関数 rm() を用いる.さらに,全てのオブジェクトを消す場合は rm(list=ls(all=TRUE)) とすればよい.

 
 objects()

[1] "col"      "colorlut" "n"        "volcano"  "x"        "y"        "ylen"    
[8] "ylim"     "z"

 rm(x)
 rm(list=ls(all=TRUE))

Windows 版ならば,メニューの [その他] から [全てのオブジェクトの消去] で全てのオブジェクトを消すことが出来る.

大文字と小文字の区別

R は大文字と小文字を区別する.従って x と X は異なるものとして R は認識する.

 
 x <- 1:4
 X

エラー:オブジェクト "X" は存在しません