2017-09-28 13 views
4

5から0までの繰り返しパターンを作成し、5,3回戻って5,4,3,2,1,0,1 、2、3、4、5、...、5 これを行うにはどうすればいいですか?Rでパターンを繰り返す(整数を上下に)

私は は誰もが、私を助けることができます... rep

(seq(from=a, by=b, length=c),d) 

機能を知っているが、このパターンでそれを使用する方法がわからない、私は

x <- 5 
y <- 3 

答えて

3

を使用したいですseqrevを使用できます。 5と0の繰り返しを2回繰り返したくないので、私はseqコマンドにそれらを含めていません。 seq(4, 1)とその逆(rev)を3回繰り返します。

a = seq(4, 1) 
c(rep(c(5, a, 0, rev(a)), 3), 5) 

#[1] 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 
+2

'loopnum < - 関数(N、回){ S < - SEQ(nは、1、-1)。 (loop)」と同じ結果を得るために 'loopnum(5、3)'を使用しています。 – thelatemail

+0

short: 'c(rep(c(5:0,1:4)、3)、5)' –

0

これは別の考えです。 5:00:5というベクトルを作成することができます。その後、ベクトルを3回繰り返すことができます。最後に、rleを使用してランレングス符号化を作成し、1より大きい長さを1に変更し、inverse.rleを使用して最終出力を作成することができます。

x <- rep(c(5:0, 0:5), 3) 
y <- rle(x) 
y$lengths[y$lengths > 1] <- 1 
z <- inverse.rle(y) 
z 
[1] 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 4 3 2 1 0 1 2 3 4 5 
関連する問題