R入門-その1

インストールしたRを触って慣れていこうかと思います。まずは慣れることから。調べてみると手始めにちょうど良さそうなのを発見しました。Rの初歩を参考にしてやっていきます。最初はなぞるだけ。

計算

四則演算は、[足すが+,引くが-,かけるが*,割るが/]です。例えば

> 1+1
[1] 2
> 3*3/6+2-1
[1] 2.5

という感じで計算ができます。ちなみに割るの"/"が小数点を含めて結果を出力してくれてます。

> pi
[1] 3.141593

これは円周率。どんなタイミングで使うのか今はまだわかりません。

変数も使えます。

> x = 3.14
> x
[1] 3.14

変数xに3.14という値を代入してみます。そのあとでxを呼び出すと3.14と代入した値が出力されます。普段から触れている変数と同じ感じがします。結果の前にいつも付いている、[1]は添字のことだそうです。Rでは添字が1から始まるんですね。

> x = 1:30
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
[26] 26 27 28 29 30

こうするとよくわかります。この場合はx[1]=1で、x[26] = 26 となります。

ベクトル

(ちょっと寄り道ぽくなりますが、気になったので書いておきます。) Rでは一般的に値はベクトルらしいのですが、これってどういうことなのかいまいちピンときません。調べてみたところ

R では実数,複素数,文字列,論理数などの基本的データを一つずつ単独で扱う代わりに,同じ型のデータをいくつかまとめたベクトルと呼ばれる形で取り扱っている.よって,今までの例では数値や文字列を一つずつ単独で扱っているかのように説明してきたが,実際には R はこれらの基本的データを,要素の個数が一つだけのベクトルとして扱っていたわけである.例えば,以下の計算は要素がひとつのベクトル同士の足し算を行っていることになる.
1 + 2
[1] 3 
1 + 2 だから単に 3 と返せばよいだけのはずだが,よく見ると [1] が前についている.小難しく云えば 1×1 のベクトル (1) と 1×1 のベクトル (2) の足し算を行って,結果として 1×1 のベクトル (3) が返ってきたことになる.[1] は『ベクトルの一つめの要素』という意味である.

[*参照:12. ベクトルの作成 | ベクトルとは]

この説明が一番しっくり来た気がします。特に「小難しく云えば 1×1 のベクトル (1) と 1×1 のベクトル (2) の足し算を行って,結果として 1×1 のベクトル (3) が返ってきたことになる.」がもやっとしてた部分を解消してくれたような。ただ自分の言葉でうまく説明できないので、ちょっと時間をおいて考えなおしてみます。

ベクトルの作成:c()

ベクトルを作成するときは基本的にc()関数を使用します。

> c(1.0, 2.0, 3.0, 4.0, 5.0)
[1] 1 2 3 4 5

> x = c(1.0, 2.0, 3.0, 4.0, 5.0)
> x[2]
[1] 2
> x + 10
[1] 11 12 13 14 15

c(1.0, 2.0, 3.0, 4.0, 5.0)では長さ5のベクトルを作成しています。配列のような感じがします。変数xにいれて10を足すと、個々の要素ごとに演算が行われているのがわかります。本当に基礎的なところを一旦終えて、次は基礎かためのpracticeに取り組んでみます。

ひつじがnひき

帰ってきたのちょっと遅かったのですでに眠いけど、ひつじを数えます。

for (i in 1:10) cat("ひつじが", i, "ひき\n")

forを使って1:10のベクトル内で要素を変数iに代入して、for文中のcatを実行しています。最後の要素まできたところで、ループを終えます。

> hitsuji = function(n) { for (i in 1:n) cat("ひつじが", i, "ひき\n") }

この書き方ならば引数を渡してやれば、その値までを実行してくれます。

>  hitsuji(20)
ひつじが 1 ひき
ひつじが 2 ひき
・
・
・
ひつじが 19 ひき
ひつじが 20 ひき

これはn=20の場合です。ひとまずひつじのせいにして寝ます。

*参照