处理向量中的元素对

Process pairs of elements in a vector

是否有任何标准函数可应用于单个向量以每步处理两个元素?

例如,我们有向量:

> a <- c(8, 4, 5, 5, 7, 10)

我们要减去两个相邻元素:

> func(a, function (x1, x2) { x1-x2 })

[1] 4 -1 0 -2 -3

一般来说,如果你想成对处理连续的向量元素,你可以得到每对中的第一个元素:

(first <- head(a, -1))
# [1] 8 4 5 5 7

你可以得到每对中的第二个元素

(second <- tail(a, -1))
# [1]  4  5  5  7 10

然后就可以对连续的元素进行任意操作了。例如,这是您的操作:

first-second
# [1]  4 -1  0 -2 -3

这是连续元素的乘积:

first*second
# [1] 32 20 25 35 70

请注意,您的操作实际上很常见,因此有一个专门的函数来计算连续元素的差异,diff