次のベクトルを作成するにはどうすればよいですか?
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