Как использовать результат вычисления формулы из предыдущей строки (как в Excel) в R - PullRequest
0 голосов
/ 06 декабря 2018

EG у нас есть фрейм данных

df <- data.frame(a=1:5, b=4:8)

мне нужно вычислить сумму a + b для умножения строки на результат этих вычислений для предыдущей строки.В Excel это должно быть как C2 = (A2 + B2) * C1 Пожалуйста, помогите

1 Ответ

0 голосов
/ 06 декабря 2018

Существует 2 интерпретации: либо накопленное накопление, где

C3 = (A2+B2)*C2 = (A2+B2)*(A1+A1)* ...

, либо простой продукт с задержкой:

C1 = (A1+B1)
C2 = (A2+B2)*(A1+B1)
C3 = (A3+B3)*(A2+B1)

Для 1), вы можете просто использовать накопленное произведение:

df <- data.frame(a=1:5, b=4:8)
df$C <- with(df, a+b)
df$C <- with(df, cumprod(C))
df
  a b     C
1 1 4     5
2 2 5    35
3 3 6   315
4 4 7  3465
5 5 8 45045

Для 2) результат умножается на вектор смещения результата:

df <- data.frame(a=1:5, b=4:8)
df$C <- with(df, a+b)
df$C <- with(df, C*c(1,C[-length(C)]))
df
  a b   C
1 1 4   5
2 2 5  35
3 3 6  63
4 4 7  99
5 5 8 143
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...