Cod*_*lus 2 lambda r fold higher-order-functions
我使用高阶函数将函数应用于向量中的每个元素,并将结果作为标量值返回.
假设我有:
v = c(0, 1, 2, 3, 4, 5, 6, 7, 8)
Run Code Online (Sandbox Code Playgroud)
我想计算左边5个整数的所有这些整数的总和:
对于i的SUM(i-5):
Reduce(function(i) sum(i-5), v, 0)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: Error in f(init, x[[i]]) : unused argument(s) (x[[i]])
我的lambda函数出了什么问题?
谢谢!
这就是你想要的(如果使用Reduce- 显然不适合这种特殊情况,所以这只是为了演示目的):
Reduce(function(x,y) {x+y-5}, v, 0)
Run Code Online (Sandbox Code Playgroud)
这将从左侧开始v,将添加下一个元素并减去5并继续这样做直到它到达结尾v.
您应该能够看到如何修改以放置两个元素(累积的一个元素和下一个元素)的任意函数,而不是您为问题选择的元素.
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |