私はRにかなり慣れていないので、実行しようとしているループについていくつか質問があります。ループでやりたいことを守って、できる限り自分自身を説明しようと思います。
for(i in (1988:1999,2000:2006)){
yearerrors=NULL
binding=do.call("rbind.fill",x[grep(names(x), pattern ="1988.* 4._ data=")])
cmeans=lapply(binding[,2:ncol(binding)],mean)
datcmeans=as.data.frame(cmeans)
finvec=datcmeans[1,]
kk=0
result=RMSE2(yields[(kk+1):(kk+ncol(binding))],finvec)
kk=kk+ncol(binding)
yearerrors=c(result)
}
yearerrors
まず、ループがデータのファイル名を反復処理することを望みます。具体的には、1988年から2006年にかけて、1988年が現在拘束力のある声明に掲載されている場所です。xはRに入力されたデータファイルのリストであり、1988はファイル名の一部です。だから、私は1988、1989、...、2006で始まるファイル名を持っています。
収量は数値ベクトルであり、ループに示されているように、ベクトルのインデックスを関数RMSE2に入力したいと思います。たとえば、最初の反復では、バインディング内の列数のインデックス1を使用する必要があります。次に、次の反復では、最初のインデックスを前の反復で終了したものより1大きくし、次のバインディングステートメントの列数に等しい数まで続けます。私が書いたものがこれを達成するかどうかはわかりません。
最後に、これらの各結果をベクトルyearerrorsに格納し、後でこのベクトルにアクセスしたいと思います。
よろしくお願いします!