Rで繰り返しを含む数列の生成(rep関数、seq関数)
Rで、「123123123...」とか「111222333...」とか「13579...」(奇数)とか「02468...」(偶数)とか、そんな感じの繰り返しを含むような数字の列を作りたい場合、1行でさらっと書けてしまいます。
【繰り返し】
> rep(7, 10)
[1] 7 7 7 7 7 7 7 7 7 7
「○を○個だけrepeat」って感じで。
【1ずつ増加】
> 1:7
[1] 1 2 3 4 5 6 7
コロンでつなげば「○から○までインクリメント」
【○ずつ増加】
> seq(1, 7, 2)
[1] 1 3 5 7
sequence関数で、「○から○まで○ずつ増加」
【1ずつ増加する数列を繰り返す】
> rep(1:7, 3)
[1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
repeat関数の第1引数に、「1ずつ増加する数列」を指定すればOK。
【○ずつ増加する数列を繰り返す】
> rep(seq(1,7,2), 3)
[1] 1 3 5 7 1 3 5 7 1 3 5 7
repeat関数の第1引数に、「○ずつ増加する数列」を指定すればOK。
【それぞれ○個】
> rep(1:7, each=3)
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7
【○ずつ増加、それぞれ○個】
> rep(seq(1,7,2), each=3)
[1] 1 1 1 3 3 3 5 5 5 7 7 7
コロンで指定していたところを、repにするだけなので簡単ですね。
【○ずつ増加、○回繰り返す、それぞれ○個】
> rep(seq(1,7,2), 2, each=3)
[1] 1 1 1 3 3 3 5 5 5 7 7 7 1 1 1 3 3 3 5 5 5 7 7 7
rep関数の第2引数は繰り返し回数で、「rep(seq(1,7,2), times=2, each=3)」と書いても同じ意味です。こう書いた方が、勘違いは少なそうですね。
【繰り返し】
> rep(7, 10)
[1] 7 7 7 7 7 7 7 7 7 7
「○を○個だけrepeat」って感じで。
【1ずつ増加】
> 1:7
[1] 1 2 3 4 5 6 7
コロンでつなげば「○から○までインクリメント」
【○ずつ増加】
> seq(1, 7, 2)
[1] 1 3 5 7
sequence関数で、「○から○まで○ずつ増加」
【1ずつ増加する数列を繰り返す】
> rep(1:7, 3)
[1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
repeat関数の第1引数に、「1ずつ増加する数列」を指定すればOK。
【○ずつ増加する数列を繰り返す】
> rep(seq(1,7,2), 3)
[1] 1 3 5 7 1 3 5 7 1 3 5 7
repeat関数の第1引数に、「○ずつ増加する数列」を指定すればOK。
【それぞれ○個】
> rep(1:7, each=3)
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7
【○ずつ増加、それぞれ○個】
> rep(seq(1,7,2), each=3)
[1] 1 1 1 3 3 3 5 5 5 7 7 7
コロンで指定していたところを、repにするだけなので簡単ですね。
【○ずつ増加、○回繰り返す、それぞれ○個】
> rep(seq(1,7,2), 2, each=3)
[1] 1 1 1 3 3 3 5 5 5 7 7 7 1 1 1 3 3 3 5 5 5 7 7 7
rep関数の第2引数は繰り返し回数で、「rep(seq(1,7,2), times=2, each=3)」と書いても同じ意味です。こう書いた方が、勘違いは少なそうですね。
コメント
コメントを投稿