使用CUMSUM(TRUE,FALSE)方法生成序列

时间:2017-04-04 05:34:14

标签: r

我正在尝试生成下面的序列,代码应该是适应性的形式。

no_of_col = 12
cumsum(rep(c(TRUE, FALSE ), no_of_col/2))
[1] 1 1 2 2 3 3 4 4 5 5 6 6

预期输出为:

[1] 1 1 1 1 2 2 2 2 3 3 3 3

此处预期输出应如上所示。

注意序列应仅通过cumsum命令生成。

2 个答案:

答案 0 :(得分:3)

我们可以尝试

cumsum(rep(c(TRUE, FALSE, FALSE, FALSE), length.out = no_of_col))
#[1] 1 1 1 1 2 2 2 2 3 3 3 3

答案 1 :(得分:1)

no_of_col = 12
cumsum(rep(c(TRUE,FALSE,FALSE,FALSE),no_of_col/4))

这就是你要找的哈维?

简化事情:如果你做一个简单的

rep(c(1,0),2)

输出为1 0 1 0 此外,如果你这样做

cumsum(rep(c(1,0),2))

输出为1 1 2 2,这与1,1 + 0,1 + 0 + 1,1 + 0 + 1 + 0无关。

您可以通过此逻辑的扩展获得所需的结果。