[R]要素を単純に繰り返したベクトルを作成する
rep関数を使う。例えば、ベクトルc(1,3,5)の要素を単純に4つつなげたベクトルを作成する。
> v <- c(1, 3, 5)
> rep(v, 4)
[1] 1 3 5 1 3 5 1 3 5 1 3 5
1つ目の引数には対象となるベクトルを指定する。2つ目のベクトルは、オプション名を省略すると、自動的に「times=」と解釈される。このtimesオプションは、指定をしたベクトル全体を何回繰り返すかを指定する。
> rep(v, times = 4)
[1] 1 3 5 1 3 5 1 3 5 1 3 5
指定をしたベクトルの各要素を何回繰り返すかも指定できる。これはeachオプションを使用する(デフォルトは1)。
> rep(v, times = 4, each = 2)
[1] 1 1 3 3 5 5 1 1 3 3 5 5 1 1 3 3 5 5 1 1 3 3 5 5
例えば、年と月の2つから構成され、2016年1月から始まり、2018年12月に終了するデータフレームを作成する場合は、eachオプションを使用したrep関数を使えば簡単に作れる。
> yy <- rep(2016:2018, each = 12)
> mm <- rep(1:12, times = 3)
> dtf <- data.frame(yy, mm)
> dtf
yy mm
1 2016 1
2 2016 2
3 2016 3
4 2016 4
5 2016 5
6 2016 6
7 2016 7
8 2016 8
9 2016 9
10 2016 10
11 2016 11
12 2016 12
13 2017 1
14 2017 2
15 2017 3
16 2017 4
17 2017 5
18 2017 6
19 2017 7
20 2017 8
21 2017 9
22 2017 10
23 2017 11
24 2017 12
25 2018 1
26 2018 2
27 2018 3
28 2018 4
29 2018 5
30 2018 6
31 2018 7
32 2018 8
33 2018 9
34 2018 10
35 2018 11
36 2018 12
