Is there a faster lm function

Yes there are:

  • R itself has lm.fit() which is more bare-bones: no formula notation, much simpler result set

  • several of our Rcpp-related packages have fastLm() implementations: RcppArmadillo, RcppEigen, RcppGSL.

We have described fastLm() in a number of blog posts and presentations. If you want it in the fastest way, do not use the formula interface: parsing the formula and preparing the model matrix takes more time than the actual regression.

That said, if you are regressing a single vector on a single vector you can simplify this as no matrix package is needed.


Since 3.1.0 there is a .lm.fit() function. This function should be faster than lm() and lm.fit().

It's described and its performance is compared with different lm functions here - https://rpubs.com/maechler/fast_lm.