处理向量中的元素对
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
。
是否有任何标准函数可应用于单个向量以每步处理两个元素?
例如,我们有向量:
> 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
。