如何在R中使用上一行的公式计算结果(如excel中)

时间:2018-12-06 11:16:31

标签: r

E.G。我们有一个数据框

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

我需要为上一行的计算结果乘以a + b的总和。在Excel中,这应该像C2 =(A2 + B2)* C1 请帮助

1 个答案:

答案 0 :(得分:0)

有两种解释,一种是

的累积积累。
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