Rで「ベクトル」を理解しよう【無料公開中】

R

こんにちは、ヤク学長です。
今回は、「Rで「ベクトル」を理解しよう」を紹介します。


⇩前回の講座を受けていない方はこちらからどうぞ⇩

Rで「ベクトル」を理解しよう

Step1 : Rでベクトルの基礎を学ぼう

ベクトルを作成してみましょう。
ベクトルは英語で「combine」です。その頭文字である、c()を使います。

c(1,2,3)

実行すると、コンソール画面に入力した数字が出力されます。

[1] 1 2 3

これ表記がベクトルを表します。
ベクトルは変数に収納することもできます。

a <- c(1,2,3)
a

簡単ですよね。これでベクトルの作成方法は完了です。
ベクトルには文字列も入れることが出来ます。文字列を格納してみましょう。

続いて、文字列型を入力してみましょう。

a <- c(“あ”,”い”,”う”,”え”,”お”)
a

文字列が出力されました。

文字列は「””」ダブルクオーテーションで囲むということに注意してください。

a <- c( 1 , 2 , 3 )
b <- c(“1″,”2″,”3”)

a
b

慣れてきたところで、数字と文字列の混合パターンを見てみましょう。

a <- c(1,2,3,”あ”)
a

文字列型になっていることが確認できますでしょうか。

文字列型が数字の中に混ざっていると、数字が入っていても
[1] “1” “2” “3” “あ”
のように、必ず「文字列型」に置き換わってしまいます。

Step2 : Rでベクトル同士の計算

ベクトル同士の計算について考えていきましょう。

a <- c(1,2,3)
a + 10 

このように、ベクトルに対して数字を足すと、
ベクトルに含まれる数字(要素)すべてに対して計算が行われます。

a + 1 :「+」 は足し算
a – 1 :「- 」 は引き算
a * 1 :「* 」 はかけ算
a / 10 : 「/ 」は割り算
a ** 2 : 「**」は累乗
a ^ 2 : 「^」は累乗
a %% 2 : 「%% 」は割り算の余り
a %/% 2 : 「%/% 」は割り算の商

を表しています。
たくさんの記号がありますので、混乱すると思いますが、使っているうちに慣れてくるはずです。

これから、ベクトル同士の計算を考えていきますので、
もう一つ新しいベクトルを作ってみます

a <- c(1,2,3)
b <- c(4,5,6)


ベクトル同士で計算を行うと結果はどうなるのでしょうか?

a
b
a + b

このような結果になりました。
a : 1 2 3
b : 4 5 6
a+b: 5 7 9


ベクトル同士の計算を行った場合は、それぞれ同じ位置同士での計算が行われます。
先ほど学んだ、足し算や掛け算の記号を試してみましょう。

Step3 : Rでベクトル同士の計算(長さが異なる場合)

ここからは、ベクトル同士の計算で要素の長さが違った場合について考えていきましょう。

len_5 <- c(1,2,3,4,5)
len_10 <- c(10,20,30,40,50,60,70,80,90,100)

長さが5のベクトルと、10のベクトルがあった場合に、

len_5 + len_10

は、以下のような結果になります。

[1] 11 22 33 44 55 61 72 83 94 105

この結果は

 1   2   3   4   5   1   2   3   4   5  <-len_5が2回繰り返し
 10  20  30  40  50  60  70  80  90  100 <-len_10が1回繰り返し

となります。つまり、短い長さのベクトルを、複数回繰り返して計算が行わます。

len_10 + len_5

この計算結果は順番を入れ替えたとしても同じ結果になります。

良く考えてみると、数字だとしても長さ「1」のベクトルだと考えれば、

len_5 + 1
1 + len_5

という結果は、長さ「1」のベクトルが5回繰り返されたものという様に考えられます。

 1 2 3 4 5   <- len_5 が1回
 1 1 1 1 1   <- 1が5回繰り替えされています。

回数が丁度よく終わらない場合も、短いものが複数回繰り返される仕組みになります。
len_3 <- c(1,2,3)
len_7 <- c(10,20,30,40,50,60,70)

len_3 + len_7
len_7 + len_3

-> 結果は、11 22 33 41 52 63 71

となります。警告が表示されますが計算は可能です。

以上、ベクトルの基本的な解説でした。

まとめ:ベクトル操作で覚えておくこと

ベクトルは、c()で実行する
ベクトルは変数に格納が可能
ベクトルの要素は文字列型が混ざっていると文字列型になる
ベクトル同士の計算は同じ位置同士で計算される。

続いて、Rのデータフレーム操作について学んでいきましょう。

最新情報をチェックしよう!