как я могу создать новый столбец, начальное значение которого равно 1, а следующие значения являются умножением предыдущего значения столбца (b) и предыдущего самого значения (d)?
эти данные только составлены, но имеют структуру моих данных:
> a <- rep(1:10, 3)
> b <- runif(30)
> c <- tibble(a,b)
> c
# A tibble: 30 x 2
a b
<int> <dbl>
1 1 0.945
2 2 0.280
3 3 0.464
4 4 0.245
5 5 0.917
6 6 0.913
7 7 0.144
8 8 0.481
9 9 0.873
10 10 0.754
# ... with 20 more rows
Затем я пытаюсь вычислить столбец d:
> c <- c %>%
+ group_by(a) %>%
+ mutate(d = accumulate(lag(b, k = 1), `*`, .init = 1))
, и он должен выглядеть следующим образом
# A tibble: 30 x 3
# Groups: a [10]
a b d
<int> <dbl> <dbl>
1 1 0.945 1 <--- b[1] * d[1] = d[2]
2 2 0.280 0.945
3 3 0.464 0.265
4 4 0.245 0.123
5 5 0.917 0.03
#...
Но вместо этого я получаю это сообщение об ошибке.
Fehler: Column `d` must be length 3 (the group size) or one, not 4