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 に答える