将函数应用于向量的两个元素

ago*_*dev 2 r

哇,我完全失明了...我读了申请,lapply等文档,但我找不到任何东西.

假设我有一个向量

a = c(1,4,5,23,6,3,121,412,23)
Run Code Online (Sandbox Code Playgroud)

我想将函数应用于c(1,4),c(4,5),c(5,23)等.因此,得到的向量应该是长度的

length(a)-1
Run Code Online (Sandbox Code Playgroud)

我想,这很简单.甚至,我想我已经做到了.但感谢您的帮助.

我想要应用的功能基本上是斜率或导数.

感谢我现在的答案:

slope = function(p){ 
  return (p[2] - p[1])
}
foo = rollapply(a, 2, slope)
Run Code Online (Sandbox Code Playgroud)

Das*_*son 7

rollapply动物园包中的功能似乎是你想要的

> library(zoo)
> a
[1]   1   4   5  23   6   3 121 412  23
> rollapply(a, 2, sum)
[1]   5   9  28  29   9 124 533 435
Run Code Online (Sandbox Code Playgroud)

请注意,特定操作有自定义rollxxx类型函数,因此更多细节可以提供更优化的解决方案.

编辑:看到你的编辑后,很清楚你想要的就是diff.

> diff(a)
[1]    3    1   18  -17   -3  118  291 -389
Run Code Online (Sandbox Code Playgroud)