1937年から1966年までの複数の時系列と単一の時系列データの実行があり、すべての単一の時系列でループを実行し、トレーニングセット(最初の20セットと残りの10セットをテストセットとして使用)で単純なモデルを構築したいと考えています。テストセットを使用して、単純な平均モデルを予測します。ご協力いただければ幸いです。データ(約30の複数の時系列データがあり、ここでは最初の3つの時系列データを取得します):
Plot Species Year Count Ppt Temp
A BG 1937 81 33.90833333 14.13181818
A BG 1938 45 48.18333333 15.14727273
A BG 1939 96 39.95833333 14.92
A BG 1940 44 48.36666667 14.27363636
A BG 1941 24 57.975 14.02
A BG 1942 8 59.55 13.65727273
A BG 1943 28 38.3 14.28363636
…………………………………….
A BG 1966 30 33.5 12.366666
A BD 1937 135 33.90833333 14.13181818
A BD 1938 91 48.18333333 15.14727273
A BD 1939 171 39.95833333 14.92
A BD 1940 88 48.36666667 14.27363636
A BD 1941 59 57.975 14.02
A BD 1942 1 59.55 13.65727273
A BD 1943 1 38.3 14.28363636
……………………………………………………..
A BD 1966 36 28 15.23658
B BG 1937 34 33.90833333 14.13181818
B BG 1938 16 48.18333333 15.14727273
B BG 1939 19 39.95833333 14.92
B BG 1940 35 48.36666667 14.27363636
B BG 1941 32 57.975 14.02
B BG 1942 7 59.55 13.65727273
B BG 1943 2 38.3 14.28363636
------------------------------------
B BG 1966 4 25 12.259
私のコードは:
data$groups <- paste(data$Plot, data$Species, sep = "_")
data_by_plot <- split (data$Count, data$groups)
ly <- lapply(data_by_plot, function(df)){
D<-nrow(df)
Training<-D[1:20,]
Testing<-D[20:30,]
Mean_model<-lm(count~1, data = Training)
Prediction<-Testing$Count[i]- Mean_model$coefficients
)}
あなたD
はたった1つの数字からサブセット化しています。おそらくあなたはやろうとしていました:
ly <- lapply(data_by_plot, function(df) {
Training<-df[1:20,]
Testing<-df[20:30,]
Mean_model<-lm(count~1, data = Training)
Prediction<-Testing$Count[i]- Mean_model$coefficients
return(Prediction)
})
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加