TODO Needs some work cleaning up
Was wondering which method of computing the standard deviation of different variables in a matrix would be the fastest. Thought of a few and run a timed run of all the commands.
sd.test <- function(data,method){
 switch(method,
        a = sqrt(diag(cov(data))),
        b = sqrt(diag(var(data))),
        c = sqrt(apply(data,2,var)),
        d = apply(data,2,var),
        e = apply(data,2,sd),
        f = sd(data),
        )
}X.temp=matrix(rnorm(25000),1000,25)
for(method in letters[1:6]){
 cat(“speed analyses type:”, method, “->”,
     (system.time(for(i in 1:1000){
       sd.test(X.temp, method)
     })[3]),
     “n”)
}
speed analyses type: a -> 2.419
speed analyses type: b -> 2.29
speed analyses type: c -> 6.385
speed analyses type: d -> 6.13
speed analyses type: e -> 6.663
speed analyses type: f -> 6.604
Appears method b is fastest, meaning the winner is…Â sqrt(diag(var(data)))