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
4

2 回答 2

3

我们可以使用seqwith rev。因为我们不想重复 5 和 0 两次,所以我没有将它们包含在seq命令中。seq(4, 1)我们将 the及其反向 ( )重复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
于 2017-09-28T03:56:30.023 回答
0

这是另一个想法。我们可以用5:0和创建向量0: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
于 2017-09-28T04:07:30.167 回答