У меня трудности с построением обратной связи на основе временных рядов l oop в R. Так как набор данных слишком велик, трудно поделиться своим кодом здесь. Короче, у меня переменная «акция» рассчитывается ежегодно и на основе винтажа для возраста 1:30. Как только у меня будет результат годового запаса, мне нужно рассчитать «продажи» за год. Тогда продажи за год будут равны винтажу [age1] в следующем году. Это последовательный расчет с разными переменными. Я не мог найти способ, которым R может автоматически обновлять результаты с обновленными входами. Любые мысли будут высоко оценены!
Вот пример вопроса
vintage<-data.frame("Year"=c(1980:2030))
for (i in 1:nrow(vintage)){
for (j in 2:31){
vintage[i,j]=runif(1,min=19000,max=500000)
colnames(vintage)[j]=paste("age_",j-1)
}
}
replacement<-vintage["Year"]
for(i in 1:nrow(replacement)){
for (j in 2:32){
replacement[i,j]=runif(1,min=0,max=1)
colnames(replacement)[j]=paste("age_",j-1)
}
}
replacement_distribution<-vintage["Year"]
for (i in 1:nrow(replacement_distribution)){
for (j in 2:31){
replacement_distribution[i,j]=vintage[i,j]*replacement[i,j+1]
}
}
for (i in 1:nrow(vintage)){
for(j in 2:31){
if(j==2){
vintage[i,j]=(rowSums(replacement_distribution[i-
1,c(2:31)])+rowSums(vintage[i-1,c(2:31)]))/5
}
else{
vintage[i,j]=vintage[i-1,j-1]*(1-replacement[i,j])
}
}
}
, как вы можете видеть, этот код является длинным и не работает. Я хочу обновить два кадра данных в последовательном порядке. То есть, как только будет рассчитано распределение урожая в 1980 году, распределение замены для этого года будет рассчитано на основе этого результата. Затем результаты этих двух будут введены в вычисление age1 в 1981 году. Я попробовал несколько методов (sapply / lapply), но они сделали все вычисления одновременно, поэтому результаты не совпадают.