如何在R

时间:2018-12-05 10:04:38

标签: r loops group-by

我设计了一个for循环,引用了计算中的前一条记录。

for(j in 2:nrow(fd1))){
    fd1$c[j]=((fd1$c[j-1]+fd1$outflow[j])/(1+fd1$discount_rate[j]))-fd1$inflow[j]
  }

我已经使用Dplyr包中的group_by语句对数据帧进行了分组,现在想在不同的组上执行此循环。另外,如果有人可以向我解释如何使用管道执行循环,这将非常有帮助

谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

似乎不需要for循环:

fd1 <- fd1 %>%
group_by(id) %>%
mutate(c = (lag(c) + outflow)/(1+discount_rate)-inflow) %>%
filter(!is.na(c)) # if you want to remove resulting NAs (because of lag)