如何创建以下向量?
vec = (0 1 1 0 0 0 1 1 1 1)
我已经尝试过rep(0:1,times=1:4)
适用于 0 以外的数字但这里不适用...=
这是一个通用的解决方案:
> 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。
对于 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