创建向量=(0 1 1 0 0 0 1 1 1 1)?

时间:2015-09-07 17:50:37

标签: r vector zero rep

如何创建以下矢量?

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

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

2 个答案:

答案 0 :(得分:4)

对于代表,'时代'和' x'需要具有相同的长度(除非'时间的长度等于1)。因此,你需要制作一个矢量' x'在这种情况下长度为4。

> rep(rep(0:1,2),times=1:4)
 [1] 0 1 1 0 0 0 1 1 1 1

答案 1 :(得分: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。