spray (version 1.0-6)

asum: Sum over dimension margins

Description

Sum over specified dimension margins.

Usage

# S3 method for spray
asum(S, dims, drop=TRUE, ...)
asum_inverted(S, dims)
process_dimensions(S,dims)

Arguments

S

spray object

dims

Vector of strictly positive integers corresponding to dimensions to be summed over

drop

Boolean, with default TRUE meaning to drop the summed dimensions, and FALSE meaning to retain them.

Further arguments, currently ignored

Value

Returns a spray object.

Details

Function asum.spray() is the method for asum(). This takes a spray, and a vector of integers corresponding to dimensions to be summed over.

Function asum_inverted() is the same, but takes a vector of integers corresponding to dimensions not to sum over. This function is here because there is nice C++ idiom for it.

Function process_dimensions() ensures that the dims argument is consistent with the spray S and returns a cleaned version thereof.

Examples

Run this code
# NOT RUN {
S <- spray(matrix(sample(0:2,60,replace=TRUE),ncol=3),addrepeats=TRUE)
S

asum(S,1)
asum(S,1:2)

asum(S,1:2,drop=FALSE)


asum(S,c(1,3)) == asum_inverted(S,2)


# }

Run the code above in your browser using DataCamp Workspace