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