我想创建一个从 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
我们可以使用seq
with 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
这是另一个想法。我们可以用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