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.
colSums(x, na.rm = FALSE, dims = 1L)# S3 method for default
colSums(x, na.rm = FALSE, dims = 1L)
# S3 method for integer64
colSums(x, na.rm = FALSE, dims = 1L)
rowSums(x, na.rm = FALSE, dims = 1L)
# S3 method for default
rowSums(x, na.rm = FALSE, dims = 1L)
# S3 method for integer64
rowSums(x, na.rm = FALSE, dims = 1L)
# S3 method for integer64
aperm(a, perm, ...)
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.
A = as.integer64(1:6)
dim(A) = 3:2
colSums(A)
rowSums(A)
aperm(A, 2:1)
Run the code above in your browser using DataLab