次のデータがあります。
df <- data.frame(Start = c(1,11,26), End = c(10,25,30), Mean = c(0.04349, 0.12, 0.04))
#df
# start End Mean
#1 1 10 0.04349
#2 11 25 0.12000
#3 26 30 0.04000
これから、ベクトルを作成したいと思います。そのエントリは でありMean
、インデックスは および によって決定されstart
ますend
。
つまり、ベクトルは0.04349
インデックス 1 からインデックス 10 までのエントリを持ち、ベクトル エントリの値は0.12
インデックス 11 から 25 などになります。これは予想される結果です。
> res = c(rep(0.04349, df$End[1] - df$Start[1] + 1), rep(0.12, df$End[2] - df$Start[2] + 1), rep(0.04, df$End[3] - df$Start[3] + 1))
> res
[1] 0.04349 0.04349 0.04349 0.04349 0.04349 0.04349 0.04349 0.04349 0.04349 0.04349 0.12000 0.12000 0.12000 0.12000 0.12000 0.12000 0.12000 0.12000
[19] 0.12000 0.12000 0.12000 0.12000 0.12000 0.12000 0.12000 0.04000 0.04000 0.04000 0.04000 0.04000
しかし、上記の取得方法は、特に多数の行の場合、非常に非効率的です。
for ループなしでこのベクトルを構築する簡単な方法はありますか? 実際には、データフレームには多数の行があります。
ありがとう!