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

コンパイラかく語りき

文系新卒プログラマーのメモ

ドットインストールでR言語をかじってみる part.2

R言語 ドットインストール

f:id:chuck0523:20150823202724p:plain

 

どうも!chuckです。

空いた時間にR言語を勉強していきます。今回勉強するのはR言語のベクトルについてです!

 

 

ベクトル

えっ、ベクトル?!と文系としては怯えてたんですが、要は配列のようなもの??みたいです。

 

c(1, 3, 5) のように書きます。小文字のcと丸括弧です。

f:id:chuck0523:20150828223541p:plain

ベクトルは変数に代入したり、添字を使って参照や代入をすることが可能です。

 

文字列や、

f:id:chuck0523:20150828223729p:plain

 

論理値を代入することも可能です。

f:id:chuck0523:20150828223737p:plain

 

また、ある範囲内の数値をベクトルに格納することもできるようです。

1:10 と書くことで、1から10までの数値をベクトルに格納します。

f:id:chuck0523:20150828223918p:plain

 

負の数バージョン。

f:id:chuck0523:20150828224019p:plain

 

よりきめ細かい指定をしたい場合、seq(セクエンス)を使うと良いらしいです。

 

こちらは通常のベクトルと同じ。

f:id:chuck0523:20150828224358p:plain

 

このようにすると、2コ飛ばしになります。

f:id:chuck0523:20150828224416p:plain

 

こうすると、1から10の間で、数値を5つ設定します。しかも、それぞれの数値が等間隔になります。

f:id:chuck0523:20150828224434p:plain

これすごくないですか??自分にとっては新鮮でした。プログラム的には、( end - first ) / ( length - 1) づつ足していけばOKっぽいですかね。

 

また、リピートというのもあるようです。

このようにtimesを使うと、1から5まで3回繰り返します。

f:id:chuck0523:20150828224743p:plain

 

一方で、lengthを使うと、ループの回数ではなく要素の数だけループをしてくれます。この場合lengthが10なので、10コになるまでループします。

f:id:chuck0523:20150828224822p:plain

 

 

ベクトルの演算

ベクトルに対して演算を行うことも可能です。

まず、2つのベクトルを用意します。

f:id:chuck0523:20150828225345p:plain

 

x (1, 3, 5)に対して2をかけてみます。

f:id:chuck0523:20150828225548p:plain

 

1を引くとこんな感じ。

f:id:chuck0523:20150828225602p:plain

 

また、ベクトル同士を演算するとこのとおり。

f:id:chuck0523:20150828225623p:plain

 

ベクトルの要素同士を比較することもできるようです。

f:id:chuck0523:20150828225725p:plain

このように、順番ごとに比較されて論理値が返ってきます。

ちなみに、x の要素を増やしてみます。その上でyと比較するとエラーが発生しました。

f:id:chuck0523:20150828225914p:plain

 

xの要素がyにあるかどうかはinを使って調べることができます。

f:id:chuck0523:20150828225950p:plain

 

他にも集合系のメソッド複数あります。

和集合-> union,  積集合->intersect,  差集合-> setdiff, 全一致-> setequal

 

f:id:chuck0523:20150828230215p:plain

 

 

因子ベクトル

因子ベクトルとは、カテゴリ付きのベクトルらしいです。

 

これはまだふつうのベクトル。

f:id:chuck0523:20150828230456p:plain

 

factorを使うことで因子ベクトルにすることができます。

f:id:chuck0523:20150828230530p:plain

Levelsという名前でカテゴリ分けがされていますね。

 

levelsをつかえばカテゴリを取得できます。

f:id:chuck0523:20150828230909p:plain

 

また、カテゴリを任意の順番で設定することもできます

f:id:chuck0523:20150828231314p:plain

factorを使う時に、第二引数にセットすればいいんですね!

 

さらに、orderedを使うと順序を指定することもできます。

f:id:chuck0523:20150828231457p:plain

 

 

まとめ

R言語のベクトルについて勉強しました。拡張性のあるデータの集まりといった感じで、ES6の配列みたいだなと思いました!

次回は「行列」について勉強していきます。(いよいよ数学っぽくて怯えてます…w)

 

では!

 

dotinstall.com

 

(めっちゃブクマされてる!)