小编Ank*_*ary的帖子

在同一个变异函数 dplyr 中使用滞后结果

我想使用dplyr+ 滞后函数复制以下公式 R。代码工作到每组的第二行,然后继续给我 0

预测 = 滞后(价值,1)*(1-滞后(损耗)/52)

状况:

  1. 预测的第一个值应该是空的,因为我们已经有了值。
  2. 第二行根据 Attrition 和 Value 列的先前值进行计算。
  3. 第三行之前的值应分别从预测(不是值列)和损耗列中选取。

我从第 3 行开始得到 0。下面是我的复制代码。

data <- data %>% group_by(Patch) %>% mutate(id = row_number())
data <- data %>% group_by(Patch) %>% mutate(forecast = lag(Value,1)*(1-lag(Attrition,1)/52))

tbl_df(data)
# A tibble: 12 x 6
   Patch Week       Value Attrition    id forecast
   <chr> <date>     <dbl>     <dbl> <int>    <dbl>
 1 11P11 2021-06-14     2     0.075     1   NA    
 2 11P11 2021-06-21     0     0.075     2    2.00 
 3 11P11 2021-06-28     0     0.075     3    0    
 4 …
Run Code Online (Sandbox Code Playgroud)

r data-analysis accumulate dplyr rolling-computation

5
推荐指数
1
解决办法
107
查看次数