У меня есть следующий набор данных:
df <- data.frame(a=1:10,b=10:1)
У меня есть следующая функция:
fun <- function(x,y) x*y/1000+x+y
Я хочу следующий вывод:
for (i in 2:10){df$a[i] = fun(df$a[i],df$a[i-1])};for (i in 2:10){df$b[i] = fun(df$b[i],df$b[i-1])}}
df
# a b
# 1 1.000000 10.00000
# 2 3.002000 19.09000
# 3 6.011006 27.24272
# 4 10.035050 34.43342
# 5 15.085225 40.64002
# 6 21.175737 45.84322
# 7 28.323967 50.02659
# 8 36.550559 53.17667
# 9 45.879514 55.28303
# 10 56.338309 56.33831
По существу,Элемент для строки i является функцией, выводимой из последней строки и текущей строки, и это выполняется рекурсивно.Есть ли лучший способ сделать это?