Open
Description
This issue is a question whether rowScale and colScale belongs in matrixStats.
In base there is scale()
, however it is not convenient:
- it works on columns, so requires transposing to work on rows.
- it is quite slow.
X <- matrix(rnorm(100000000), ncol=1000)
system.time(scale(X))
user system elapsed
17.748 2.032 19.825
The way I do scaling is now often like this:
system.time((X - colMeans(X)[col(X)]) / matrixStats::colSds(X)[col(X)])
user system elapsed
5.057 0.878 5.949
But that is awkward to write, and still not efficient (means are calculated for both colMeans and colSds, col(X) is there twice).
Metadata
Metadata
Assignees
Labels
No labels