Performance

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]).