shiftApply-methods: Apply a function over subsequences of 2 vector-like objects

shiftApply-methodsR Documentation

Apply a function over subsequences of 2 vector-like objects

Description

shiftApply loops and applies a function overs subsequences of vector-like objects X and Y.

Usage

shiftApply(SHIFT, X, Y, FUN, ..., OFFSET=0L, simplify=TRUE, verbose=FALSE)

Arguments

SHIFT

A non-negative integer vector of shift values.

X, Y

The vector-like objects to shift.

FUN

The function, found via match.fun, to be applied to each set of shifted vectors.

...

Further arguments for FUN.

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 i indices to track the iterations.

Details

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.

See Also

  • The window and aggregate methods for vector-like objects defined in the S4Vectors package.

  • Vector and Rle objects.

Examples

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)))

Bioconductor/S4Vectors documentation built on Nov. 17, 2024, 6:55 p.m.