2017-10-16 11 views
0

私は自分自身を教えようとしています。ループで本当に苦労しています。私は2008年にまで拡張し、次のデータセットを持っている:R- for Loop Subsetting

"","year","bdeadbes" 
"1",1946,295541 
"2",1947,396708 
"3",1948,472363 
"4",1949,434321 
"5",1950,546501 
"6",1951,393740 

私は、平均、どこループの反復ごとに、年間1951から2008のためのサブセットにループを作成する方法を把握しようとしています過去5年間が計算され、新しいベクトルに格納されます。 for (i in 1:storage_vec){}

が、私はすべての図をすることはできません。私はループシェルがなければならないことを前提とし

storage_vec<-rep(length(bd$year[1951:2008])) 

:これまでのところ、すべて私が把握することができましたが、ストレージベクター自体を設定しています希望の操作のためにデータを適切にサブセット化する方法を説明します。誰かが私を正しい方向に向けることができますか?

答えて

0

もちろんこれを行うにはより効率的な方法がありますが、ループを使用することも1つの選択肢です。最初の値は、平均する前の値がないため、ちょうど393740です。

dtf <- read.csv(text=" 
    year,bdeadbes 
    1946,295541 
    1947,396708 
    1948,472363 
    1949,434321 
    1950,546501 
    1951,393740", header=TRUE) 

dtf 

v <- seq_along(dtf$year) 

for (i in length(dtf$year):1) { 
    v[i] <- mean(dtf$bdeadbes[(i:(i-5))+5], na.rm=TRUE) 
} 

rev(v) 
# 393740.0 470120.5 458187.3 461731.2 448726.6 423195.7