These functions and methods facilitate working with integer64 objects stored in matrices. As ever, the primary motivation for having tailor-made functions here is that R's methods often receive input from bit64 and treat the vectors as doubles, leading to unexpected and/or incorrect results.
Usage
colSums(x, na.rm = FALSE, dims = 1L)
# Default S3 method
colSums(x, na.rm = FALSE, dims = 1L)
# S3 method for class 'integer64'
colSums(x, na.rm = FALSE, dims = 1L)
rowSums(x, na.rm = FALSE, dims = 1L)
# Default S3 method
rowSums(x, na.rm = FALSE, dims = 1L)
# S3 method for class 'integer64'
rowSums(x, na.rm = FALSE, dims = 1L)
# S3 method for class 'integer64'
aperm(a, perm, ...)
Arguments
- x
An array of integer64 numbers.
- na.rm, dims
Same interpretation as in
colSums()
.- a, perm
Passed on to
aperm()
.- ...
Passed on to subsequent methods.
Details
As of now, the colSums()
and rowSums()
methods are implemented
as wrappers around equivalent apply()
approaches, because
re-using the default routine (and then applying integer64 to the
result) does not work for objects with missing elements. Ideally
this would eventually get its own dedicated C routine mimicking
that of colSums()
for integers; feature requests and PRs welcome.
aperm()
is required for apply()
to work, in general, otherwise
FUN
gets applied to a class-stripped version of the input.
Examples
A = as.integer64(1:6)
dim(A) = 3:2
colSums(A)
#> integer64
#> [1] 6 15
rowSums(A)
#> integer64
#> [1] 5 7 9
aperm(A, 2:1)
#> integer64
#> [,1] [,2] [,3]
#> [1,] 1 2 3
#> [2,] 4 5 6
#> attr(,"class")
#> [1] matrix array