データセット (FULLDATASET) をトレーニング (OLDData) とホールドアウト (NewData) データセットに分割するループがあります。モデル ((xtreg)regressors を使用した auto.arima) は、i でインデックス付けされた 24 個のピースで推定されます。ホールドアウト データセット (NewData) は、OldData で構築されたモデルから FIT を使用して予測を行うために使用されます。NewData2 は NewData とまったく同じですが、列 18:20 の 3 つの予測子をゼロ値にする必要があります。ループを実行するとエラーは発生しませんが、列 18 から 20 の NewData2 の変数は元の値と同じであるため、NewData と NewData2 の両方を使用した予測は同じです。変数を名前で指定すると、最初に指定された変数のみにゼロのベクトルが割り当てられます。
OldData<-FULLDATASET[[i]][1:525,]
NewData<-FULLDATASET[[i]][526:547,]
NewData2<-transform(FULLDATASET[[i]][526:547,],FULLDATASET[[i]][526:547,18:20]<-0 )
私の質問は次のとおりです。データフレーム内の複数の列にゼロ値を割り当てることができるように、データフレームを変換するにはどうすればよいですか? また、コードがループで実行されていることを思い出してください。私はもともと plyr と apply 関数を使用していましたが、私のニーズに合わせて、ループの実行速度が大幅に向上しました。