« 2017年5月 | トップページ | 2017年9月 »

2017年6月 7日 (水)

[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

« 2017年5月 | トップページ | 2017年9月 »

無料ブログはココログ

■■

■■■