gpt4 book ai didi

减少 R 中的左折叠

转载 作者:行者123 更新时间:2023-12-04 12:16:47 29 4
gpt4 key购买 nike

我正在使用高阶函数将函数应用于向量中的每个元素并将结果作为标量值返回。

假设我有:

v = c(0, 1, 2, 3, 4, 5, 6, 7, 8)

我想计算以左边 5 个整数为中心的所有这些整数的总和:

我在 v 中的 SUM(i-5):

Reduce(function(i) sum(i-5), v, 0)

我收到以下错误:error in f(init, x[[i]]) : unused argument(s) (x[[i]])

我的 lambda 函数出了什么问题?

谢谢!

最佳答案

这就是您想要的(如果使用 Reduce - 显然不是针对此特定情况的正确做法,因此这仅用于演示目的):

Reduce(function(x,y) {x+y-5}, v, 0)

这将从 v 的左侧开始,添加下一个元素并减去 5 并继续这样做,直到它到达 v 的末尾。

您应该能够看到如何修改以放置两个元素(累积的一个和下一个)的任意函数,而不是您为问题选择的那个。

关于减少 R 中的左折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16364549/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com