Skip to contents

EXPERIMENTAL!!!

The SparseArray package provides memory-efficient summarization methods for NaArray objects. The following methods are supported at the moment: anyNA(), any(), all(), min(), max(), range(), sum(), prod(), mean(), var(), sd().

More might be added in the future.

Note that these are S4 generic functions defined in base R and in the BiocGenerics package, with default methods defined in base R. This man page documents the methods defined for NaArray objects.

Details

All these methods operate natively on the NaArray representation, for maximum efficiency.

Value

See man pages of the corresponding default methods in the base package (e.g. ?base::range, ?base::mean, etc...) for the value returned by these methods.

See also

  • NaArray objects.

  • The man pages of the various default methods defined in the base package e.g. base::range, base::mean, base::anyNA, etc...

Examples

naa <- NaArray(dim=c(4, 5, 2))
naa[c(1:2, 8, 10, 15:17, 24:26, 28, 40)] <- (1:12)*10L
naa
#> <4 x 5 x 2 NaArray> of type "integer" [nnacount=12 (30%)]:
#> ,,1
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]   10   NA   NA   NA   70
#> [2,]   20   NA   40   NA   NA
#> [3,]   NA   NA   NA   50   NA
#> [4,]   NA   30   NA   60   NA
#> 
#> ,,2
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]   NA   90   NA   NA   NA
#> [2,]   NA  100   NA   NA   NA
#> [3,]   NA   NA   NA   NA   NA
#> [4,]   80  110   NA   NA  120
#> 

anyNA(naa)
#> [1] TRUE

range(naa, na.rm=TRUE)
#> [1]  10 120

sum(naa, na.rm=TRUE)
#> [1] 780

sd(naa, na.rm=TRUE)
#> [1] 36.05551

## Sanity checks:
a0 <- as.array(naa)
stopifnot(
  identical(anyNA(naa), anyNA(a0)),
  identical(range(naa), range(a0)),
  identical(range(naa, na.rm=TRUE), range(a0, na.rm=TRUE)),
  identical(sum(naa), sum(a0)),
  identical(sum(naa, na.rm=TRUE), sum(a0, na.rm=TRUE)),
  all.equal(sd(naa, na.rm=TRUE), sd(a0, na.rm=TRUE))
)