私はリストアーカイブを掘り下げました、そして私はこの質問をするための正しい言葉を知らないか、これは前に出てきませんでした-
ポイントのリストを経時的に追跡するシミュレーション機能があり、割り当てに基づいて余分なラグ計算を導入したいと考えています。Rが行列をどのように埋めるかを理解するために、非常に簡単なコードを作成しました。
t<-21 #time step
N<-10 #points to track
#creating a matrix where it's easy for me to see how the calculation is done
NEE<-rep(NA, (t+1)*N);dim(NEE)<-c(N,(t+1))
for(i in 1:t){
NEE[,1]<-1
NEE[,i+1]<-NEE[,i]+5
}
#the thing to calculate
gt<-rep(0, (t+1)*N);dim(gt)<-c(N,(t+1))
#assigned states
veg<-c(rep(0,5), rep(1,5))
veg.com<-rep(veg, t);dim(veg.com)<-c(N,t)
for (i in 1:t){
gt[,i+1]<-ifelse(veg.com[,i]==0, NEE[,i]/5, NEE[,i-3]/5)
}
#to have a view of what happens
veg1<-gt[1,]*5 #assignment for veg.com==0
veg2<-gt[10,]*5 #assignment for veg.com==1
what<-cbind(NEE[1,], veg1,veg2)
what
もちろん、veg.com == 1のときにラグが有効になる前に、最初のビット(ここでは、veg2の最初の4つの値として示されています)を埋める方法を除いて、機能します。回避策があると確信していますが、最初に、最初のいくつかのループでRが何をしているのかを理解したいだけですか?