使用purrr::reduce()进行迭代
给定一个初始值为使用purrr::reduce()进行迭代,r,reduce,purrr,R,Reduce,Purrr,给定一个初始值为a=3的函数f(a,x)=a*x,假设在下一步中有一个迭代,其中a被赋值为f(a,x) 对于x=2,a分配f(3,x=2)=6,然后 对于x=3,a分配f(6,x=3)=18,然后 对于x=4,a分配f(18,x=4)=72 如何使用purr实现迭代?下面的说法并不完全正确 库(purrr) a[1]18 2:4%>%累积(~f(a,)) #> [1] 2 6 18 由(v0.3.0)于2020年4月24日创建 2:4 %>% accumulate(~f(.y,
a=3
的函数f(a,x)=a*x
,假设在下一步中有一个迭代,其中a
被赋值为f(a,x)
- 对于
,x=2
分配a
,然后李>f(3,x=2)=6
- 对于
,x=3
分配a
,然后李>f(6,x=3)=18
- 对于
,x=4
分配a
李>f(18,x=4)=72
purr
实现迭代?下面的说法并不完全正确
库(purrr)
a[1]18
2:4%>%累积(~f(a,))
#> [1] 2 6 18
由(v0.3.0)于2020年4月24日创建
2:4 %>% accumulate(~f(.y, .x), .init=3)
# [1] 3 6 18 72
.x
值表示上一个值,而.y
以下是要导入的向量中的下一个元素。我们不是在函数中硬编码a=3
,而是通过.init=
传递给它,它只在第一次迭代时发生。在base R中,您可以使用Reduce
和accumulate=TRUE
Reduce(f, 2:4, init = 3, accumulate = TRUE)
#[1] 3 6 18 72