arrays - Process pairs of elements in a vector -
is there standard function can applied single vector process 2 elements per step?
for example, have vector:
> <- c(8, 4, 5, 5, 7, 10)
and want subtract 2 neighbors elements:
> func(a, function (x1, x2) { x1-x2 }) [1] 4 -1 0 -2 -3
in general if want process consecutive vector elements in pairs can first element in each pair with:
(first <- head(a, -1)) # [1] 8 4 5 5 7
and can second element in each pair with
(second <- tail(a, -1)) # [1] 4 5 5 7 10
then can perform operation want on consecutive elements. instance, here's operation:
first-second # [1] 4 -1 0 -2 -3
here's product of consecutive elements:
first*second # [1] 32 20 25 35 70
note operation pretty common there specialized function take differences of consecutive elements, diff
.
Comments
Post a Comment