Apply a function over subsequences of 2 vector-like objects
shiftApply
loops and applies a function overs subsequences
of vector-like objects X
and Y
.
shiftApply(SHIFT, X, Y, FUN, ..., OFFSET=0L, simplify=TRUE, verbose=FALSE)
SHIFT |
A non-negative integer vector of shift values. |
X, Y |
The vector-like objects to shift. |
FUN |
The function, found via |
... |
Further arguments for |
OFFSET |
A non-negative integer offset to maintain throughout the shift operations. |
simplify |
A logical value specifying whether or not the result should be simplified to a vector or matrix if possible. |
verbose |
A logical value specifying whether or not to
print the |
Let i
be the indices in SHIFT
,
X_i = window(X, 1 + OFFSET, length(X) - SHIFT[i])
, and
Y_i = window(Y, 1 + SHIFT[i], length(Y) - OFFSET)
.
shiftApply
calculates the set of FUN(X_i, Y_i, ...)
values
and returns the results in a convenient form.
set.seed(0) lambda <- c(rep(0.001, 4500), seq(0.001, 10, length = 500), seq(10, 0.001, length = 500)) xRle <- Rle(rpois(1e7, lambda)) yRle <- Rle(rpois(1e7, lambda[c(251:length(lambda), 1:250)])) cor(xRle, yRle) shifts <- seq(235, 265, by=3) corrs <- shiftApply(shifts, yRle, xRle, FUN=cor) cor(xRle, yRle) shiftApply(249:251, yRle, xRle, FUN=function(x, y) var(x, y) / (sd(x) * sd(y)))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.