Accuracy and flexibility are among the strong suits of
moder. Performance is not. mode_all()
and friends are
multiple times slower than R’s built-in functions for common measures of
central tendency, mean()
and median()
.
Why is that? All of moder’s code is written in R. By contrast, the
default mean()
method calls an internal function. Also,
handling missing values is much more complex in the mode functions than
in mean()
or median()
; see Modes
and missing values. The default methods for mean()
and median()
are fairly short when compared to
mode_first()
, and to mode_all()
if its helper
function is included. mode_single()
is a wrapper around
mode_all()
, so it’s even longer.
It is also possible that some of the code is less efficient than it could be. In particular, rewriting moder’s R code in a language like C++ or Rust might blend accuracy with high performance. I myself am not going to port the package in the near term, so help is welcome. If you have any suggestions, please open an issue or get in touch via email ([email protected]).