1:20
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
pi:10
## [1] 3.141593 4.141593 5.141593 6.141593 7.141593 8.141593 9.141593
15:1
## [1] 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
# : についての説明は、?":" で確認することができます。
?":"
# seq()関数は、":" よりももっとシーケンスについて指定ができます。
seq(1, 20)
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
seq(1, 10, by = 0.5)
## [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5
## [15] 8.0 8.5 9.0 9.5 10.0
# by により間隔を指定しましたが、個数の指定は、引数lengthにより可能です。
# たとえば、5と10の間に30個の数値を生成したいときは、次のとおり。
my_seq <- seq(5, 10, length=30)
# さあ、length()関数を使って、長さが30になっているか確認してください。
length(my_seq)
## [1] 30
# もしmy_seqの長さを知らないと仮定して、1からmy_seqベクトルの長さまでを生成したいときには….いくつかの方法があります。
1:length(my_seq)
## [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] 24 25 26 27 28 29 30
seq(along.with = my_seq)
## [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] 24 25 26 27 28 29 30
seq_along(my_seq)
## [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] 24 25 26 27 28 29 30
# rep()を使うと、同じ要素を複数生成できます。 rep は replicate を意味します。
rep(0, times = 40)
## [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [36] 0 0 0 0 0
rep(c(0, 1, 2), times=10)
## [1] 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2
# ここで、引数eachを使うとこんなこともできます。
rep(c(0, 1, 2), each = 10)
## [1] 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2