R言語 一つの変数に複数のデータを格納

前回の記事はこちらです。

複数のデータを格納

前回までは一つの変数に一つのデータしか格納してこなかったです。今回は一つの変数に複数のデータを格納してみましょう。

早速、Rを起動して、変数aに複数のデータを格納してみます。

a<-c(1,5,30,100,1000)

と入力してエンターを押してみましょう。続けてaと入力してエンターで変数aの中身を確認してみましょう。

1  5  30  100  1000

と表示されます。これは別々に5個のデータが格納されているということです。

このように

c(データ,データ,データ…..)

で一つの変数に複数の値を格納する事が出来ます。

このようなデータ(一次元のデータ群)をR言語ではベクトルと言います。R言語を使う上でベクトルは欠かせないものです。私のような趣味で簡単なものしか扱わなくてもベクトルは使います。

個別にアクセス

複数のデータを格納したら、必ず全部のデータにアクセスしないといけないというわけではないです。「変数aの2番目から4番目のデータだけ取り出したい」などという時もあると思います。

a[2]

と入力してエンターを押してみましょう。

5

と2~4番目のデータだけ表示されます。ベクトルには必ず個々のデータに番号が付けられます。c(データ、…)でベクトルを作ったときは、左から順に通し番号が自動で付けられます。この番号をインデックス番号と言います。

変数名[インデックス番号]

でベクトルの中の個別のデータにアクセスする事が出来ます。

a[2]

と入力するとc(1,5,30,100,1000)の左から2番目の5が表示されたのです。

一部にアクセス

個別にアクセスを少し発展させて一部にアクセスすることもできます。

a[2:4]

と入力してエンターを押してみましょう。

5  30  100

と表示されます。

変数名[インデックス番号1  :  インデックス番号2]

でインデックス番号1~インデックス番号2までのデータにまとめてアクセスする事が出来ます。

ベクトルを使って計算してみる

もちろん計算することもできます。全部でも一部でも個別でも計算できます。

まずは個別に計算してみます。

a[3]+20

と入力してエンターを押すと

50

と表示されて、変数aの3番目のデータ30+20=50とちゃんと計算されています。

次は一部で計算してみます。

a[1:3]*10

と入力してエンターを押すと

10 50 300

と表示されます。変数aの1番目のデータ1*10=10、変数aの2番目のデータ5*10=50、変数aの3番目のデータ*10=300とそれぞれのデータに10をかけた計算結果が表示されます。

最後は全部のデータについて計算します。

a-1

と入力してエンターを押すと

0 4 29 99 999

と表示されます。全部のデータにそれぞれ1引いた計算結果が表示されました。

おまけ

変数の一部を取り出すときに:(コロン)を使いましたが、変数を作る時にも使えます。

b<-c(1:10)

と入力してエンター、続けてbと入力して中身を確認してみましょう。

1  2  3  4  5  6  7  8  9  10

と表示されます。R言語では:(コロン)は~(から)を意味して、1:10は1から10までという意味になります。

次回は

今までは計算自体に目的がなく、ただの数字で退屈だったと思います。次回は馴染みのあるひと月の平均気温を計算したいと思います。