diff.func <- function(x, func)
{
## Purpose: Apply a function to each consecutive pairs in a vector.
## Arguments:
## x: a vector
## func: a function that operature on two elements (of "x")
## Return: a vector, whose length is length(x) - 1, that looks like (where N=length(x))
## func(x[2], x[1]), func(x[3], x[2]), func(x[4], x[3]), ..., func(x[N], x[N-1]).
## Author: Feiming Chen, Date: 9 Feb 2017, 11:25
## ________________________________________________
## embed in 2-dim space to make consecutive pairs
x2 <- embed(x, 2) # N - 1 pairs
## apply a function to each consecutive paris (reversely)
x3 <- apply(x2, 1, func)
x3
}
if (F) { # Unit Test
diff.func(1:5, diff) # -1 -1 -1 -1
diff.func(1:5, mean) # 1.5 2.5 3.5 4.5
}
Tuesday, February 14, 2017
Apply a function to each consecutive pairs in a vector.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment