Кумулятивное суммирование уравнения для цикла - PullRequest
0 голосов
/ 31 мая 2018

У меня нет большого опыта работы с R, но я хочу поместить уравнение, которое использует накопленную сумму в R-studio.Уравнение является частью набора дискретных уравнений времени, которые все моделируются с помощью циклов for.По сути, я хочу смоделировать это, но более простым способом:

Zsec1 = g*(1+c/r+c)*Zprim1

Zsec2 = g*(1+c/r+c)*Zprim1 + g*(1+c/r+c)*Zprim2

Zsec3 = g*(1+c/r+c)*Zprim1 + g*(1+c/r+c)*Zprim2 + g*(1+c/r+c)*Zprim3 
..etc

Исходя из того, что я мог найти в Интернете, я попытался использовать цикл for следующим образом:

for (t in Time) print(cumsum({gamma*((1+c4)/(r+c4))*Zprm[t]})) 

однако код cumsum ничего не делает, так как я получаю тот же результат, когда вынимаю его.

и так:

total=0

for (t in Time) print({total <- total + (gamma*((1+c4)/(r+c4))*Zprm[t])})    

Кто-нибудь может помочь мне с этим??Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Это в основном ответ первого комментария.Я просто нахожу более интуитивно понятным выделение этого фактора перед тем, как брать сперму.

g*(1+c/r+c)*cumsum(Zprm[1:Time])[Time]
0 голосов
/ 31 мая 2018

Вы можете использовать это:

Zprm<-rep(0,Time+1)
for (t in 1:Time){
  Zprm[t+1]=(gamma*((1+c4)/(r+c4))*sum(Zprm))
}
...