2

私の質問は簡単ですが、オンラインで解決策を見つけることができませんでした。

ベクトルがありa = c(7,3,5)ます。に変換する必要がありb = c(0,1,2,3,4,5,6,0,1,2,0,1,2,3,4)ます。ループでそれを行うことができますが、長さ (a) > 500000 の場合は非常に遅くなります。

m <- 0
n <- 0
for (i in 1:length(a)) {
  m <- n+1;
  n <- n+a[i];

  b[m:n] <- (0:(a[i]-1));
}

説明されている動作を非常に高速に生成できるRのワンライナーはありますか? 同じアプローチでベクトル a を変換できますc = c(0,0,0,0,0,0,1,0,0,1,0,0,0,0,1)か?

4

1 に答える 1