R言語のベクトルについて、詳しく解説します。

Rのベクトルについて

Rのベクトルは、高校数学で学ぶベクトル(数値ベクトル)としてだけではなく、文字列を要素に含むこともできます。このことから、ものの集まりである集合として考えることもあります。

ベクトルの作成

ベクトルを作成するにはc()を使用します。


x <- c(1, 2, 3)
x
(out)[1] 1 2 3

ベクトルの長さを取得

ベクトルの長さを取得するには、length()を使用します。


x <- c(1, 2, 3)
length(x)
(out)3

ベクトルの要素を取得

ベクトルの要素を取得するには「[(要素の番号)]」を使用します。この要素の番号は、単体の整数を指定するだけでなく、要素の集まりのベクトルを指定することもできます。ベクトルの要素の番号に関して注意することとして、R言語は他の多くのプログラミング言語とは異なり、最初の番号は「1」から始まります。


x <- c(10, 20, 30, 40, 50)
# ベクトルxの2番目の要素を取得
x[2]
(out)[1] 20
(out)
# ベクトルxの1, 3, 5番目の要素を取得
x[c(1, 3, 5)]
(out)[1] 10 30 50

ベクトルの要素を追加

ベクトルの要素を追加する方法はいくつかありますので、個別に解説します。

末尾に追加

(ベクトルの長さ) + 1」の要素番号に値を追加すると末尾追加になります。


x <- c(10, 20, 30, 40, 50)
x[6] <- 60
x
(out)[1] 10 20 30 40 50 60
(out)
# 要素番号を直接指定するのではなく、length()を使用することもできます
x <- c(10, 20, 30, 40, 50)
x[length(x)] <- 60
x
(out)[1] 10 20 30 40 50 60

下記で解説している2つのベクトルの連結の方法を使用することもできます。


x <- c(10, 20, 30, 40, 50)
x <- c(x, 60)
x
(out)[1] 10 20 30 40 50 60

append()を使用して、末尾に追加することもできます。append()の引数は次になります。

順序 引数名 デフォルト 説明
1 x 追加されるベクトル
2 values 追加するベクトルまたは数値
3 after length(x) 追加されるベクトルのどの要素番号の後に追加するか(デフォルトは末尾)

x <- c(10, 20, 30, 40, 50)
x <- append(x, 60)
x
(out)[1] 10 20 30 40 50 60

末尾以外に追加

末尾以外に追加(挿入)するにはappend()を使用します。


x <- c(10, 20, 30, 40, 50)
x <- append(x, 25, 2)
x
(out)[1] 10 20 25 30 40 50

ベクトルの要素を変更

ベクトルの要素を変更するには、要素番号を指定して代入します。


x <- c(10, 20, 30, 40, 50)
x[3] <- 35
x
(out)[1] 10 20 35 40 50

ベクトルの要素を削除

ベクトルの要素を削除するには、「-(削除したい要素番号)」としてベクトルの要素を取得します。


x <- c(10, 20, 30, 40, 50)
x <- x[-2]
x
(out)[1] 10 30 40 50
(out)
x <- c(10, 20, 30, 40, 50)
x <- x[c(-2, -3, -4)]
x
(out)[1] 10 50

文字列ベクトルで文字列を指定して要素を削除するには、文字列ベクトルで文字列を指定して要素を削除する方法を参照してください。

2つのベクトルを連結

2つのベクトルを連結するには、c()を使用します。


x <- c(10, 20, 30)
y <- c(40, 50)
z <- c(x, y)
z
(out)[1] 10 20 30 40 50

ベクトルの要素を並び替える

昇順・降順で並び替える

ベクトルの要素を昇順・降順で並び替えるにはsort()を使用します。


x <- c(1, 3, 2, 5, 4)
# 昇順
sort(x)
(out)[1] 1 2 3 4 5
(out)
# 降順
sort(x, decreasing = TRUE)
(out)[1] 5 4 3 2 1

逆順にする

ベクトルの要素を逆順にするにはrev()を使用します。


x <- c(1, 3, 2, 5, 4)
rev(x)
(out)[1] 4 5 2 3 1

ベクトルの要素に名前を付ける

ベクトルの要素に名前を付けるにはnames()を使用します。要素に名前が付けられたベクトルは名前付きベクトルとなります。


x <- c(1, 2, 3)
names(x) <- c("A", "B", "C")
x
(out)A B C 
(out)1 2 3 
(out)
# 要素名で値を取得
x["B"]
(out)B 
(out)2
R入門 データ構造 ベクトル詳説