Karolis K
2021-Jul-05 16:17 UTC
[Rd] speed of cor(..., use="pairwise.complete.obs") when no NAs are present.
Hello, I was iterating over some matrices with cor(x, use=?pairwise.complete.obs?) to handle cases with NA values and noticed that such ?use=? setting had a big influence on speed even for matrices that had no NAs. Given that anyNA(x) is so quick, maybe in the case of use=?pairwise.complete.obs? it would make sense to first check if the arguments have any NAs, and switch to use=?everything? in such cases? Below are my quick benchmarks. x <- matrix(rnorm(1e6), ncol=1e3) system.time(cor(x)) # user system elapsed # 0.636 0.003 0.641 system.time(cor(x, use="pair")) # user system elapsed # 3.509 0.013 3.538 system.time(anyNA(x)) # user system elapsed # 0.001 0.000 0.001 Warm regards, Karolis K.