0

如何创建以下向量?

vec = (0 1 1 0 0 0 1 1 1 1)

我已经尝试过rep(0:1,times=1:4)适用于 0 以外的数字但这里不适用...=

4

2 回答 2

4

这是一个通用的解决方案:

> increp=function(n){rep(0:(n-1), times=1:n) %% 2}
> increp(4)
 [1] 0 1 1 0 0 0 1 1 1 1
> increp(3)
[1] 0 1 1 0 0 0
> increp(2)
[1] 0 1 1
> increp(6)
 [1] 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1

它生成0,1,1,2,2,2,3,3,3所需的长度,然后根据偶数或奇数转换为 0/1。

于 2015-09-07T18:05:47.240 回答
4

对于 rep,'times' 和 'x' 需要具有相同的长度(除非 'times' 的长度等于 1)。因此,在这种情况下,您需要创建一个长度为 4 的向量“x”。

> rep(rep(0:1,2),times=1:4)
 [1] 0 1 1 0 0 0 1 1 1 1
于 2015-09-07T17:57:26.233 回答