Rでベクトルを作成する

R
Published

August 23, 2024

ベクトル作成

いちばん簡単なベクトルの作成はc():です。

c(1,3,5)
[1] 1 3 5
1:5
[1] 1 2 3 4 5

始めと終わりの数を指定してベクトルを作成します。

seq(1, 3)
[1] 1 2 3

終わりの数\(N\)だけを指定すると、1~\(N\)までのベクトルを作成できます。

seq(3)
[1] 1 2 3

丁寧に書くと

seq(from = 1, to = 3)
[1] 1 2 3

上昇幅を指定してベクトルを作成する

デフォルトでは1ずつ上昇しますが、引数byを変更すると上昇数値を変更できます。

seq(from = 1, to = 3, by = 0.5) # 0.5ずつ上昇
[1] 1.0 1.5 2.0 2.5 3.0

長さを指定してベクトルを作成する

引数length.outを指定すると、長さを指定してベクトルを作成できます。

seq(from = 1, to = 3, length.out = 6) # 長さ6のベクトル
[1] 1.0 1.4 1.8 2.2 2.6 3.0

1から始まる場合は、seq_len()の方が速く動きます。 引数length.outにベクトルの長さだけを指定します。

seq_len(5) # 1~5までのベクトル
[1] 1 2 3 4 5

あるベクトルと同じ長さのベクトルを作成するにはseq_alongを使用します。

X <- c("A", "B", "C", "D", "E")
seq_along(X)
[1] 1 2 3 4 5

これは、forループを使用する際に便利です。

下のように書くことが多いと思います。

X <- c("A", "B", "C", "D", "E")
for(i in 1:length(X)){
    print(X[i])
}
[1] "A"
[1] "B"
[1] "C"
[1] "D"
[1] "E"

seq_along()を使用すると以下のようになります。

X <- c("A", "B", "C", "D", "E")
for(i in seq_along(X)){
    print(X[i])
}
[1] "A"
[1] "B"
[1] "C"
[1] "D"
[1] "E"
X <- c()
for(i in 1:length(X)){
    print(X)
}
NULL
NULL
X <- c()
for(i in seq_along(X)){
    print(X)
}

同じ数字を繰り返す

同じ値を繰り返すベクトルを作成するには、rep()関数を使用します。 repeatに由来します。

rep(3, 5) # 3を5回繰り返す
[1] 3 3 3 3 3

ベクトルを繰り返すこともできます。

rep(1:3, 3) # 1~3を3回繰り返す
[1] 1 2 3 1 2 3 1 2 3
rep(1:3, times = 3) # 上と同じ
[1] 1 2 3 1 2 3 1 2 3

それぞれの値をまとめて繰り返すこともできます。

rep(1:3, each = 3) # それぞれの値を3回繰り返す
[1] 1 1 1 2 2 2 3 3 3

繰り返す回数を値ごとに指定できます。

rep(1:3, c(1, 2, 1)) # 1は1回、2は2回、3は1回
[1] 1 2 2 3

長さを指定することもできます。 長さが優先されるので、繰り返しは途中で切り捨てられます。

rep(1:3, length.out = 5) # 長さ5まで繰り返す
[1] 1 2 3 1 2

活用例

x <- seq(from=0, to=pi, length.out = 100)
plot(x, sin(x))

Back to top