R中重复模式(向下和向上整数)

时间:2017-09-28 03:53:25

标签: r rep

我想创建一个从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

2 个答案:

答案 0 :(得分:3)

我们可以将seqrev一起使用。因为我们不想重复5次和0次,所以我没有将它们包含在seq命令中。我们重复seq(4, 1)及其反向(rev)三次。

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

答案 1 :(得分:0)

这是另一个想法。我们可以使用5:00:5创建向量。然后我们可以重复三次矢量。最后,我们可以使用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