我想根据前一行和同一列的值逐步增加一个新列。你可以用一个循环来做,就像这样:
df <- data.frame(a = 2000:2010,
b = 10:20,
c = seq(1000, 11000, 1000),
x = 1000)
for(i in 2:nrow(df)) df$x[i] <- (df$c[i]) * df$a[i-1] / df$x[i-1] + df$b[i] * df$a[i]
df
a b c x
1 2000 10 1000 1000.00
2 2001 11 2000 26011.00
3 2002 12 3000 24254.79
4 2003 13 4000 26369.16
5 2004 14 5000 28435.80
6 2005 15 6000 30497.85
7 2006 16 7000 32556.20
8 2007 17 8000 34611.93
9 2008 18 9000 …
Run Code Online (Sandbox Code Playgroud)