From: Jason Liao (jg_liao@yahoo.com)
Date: Wed 02 May 2001 - 01:32:10 EST
Message-ID: <20010501153210.26598.qmail@web10501.mail.yahoo.com>
This is some kind of follow-up to my previous posts. I have further
improved the speed of my program 6 times by eliminating all the
apply(). It turns out that apply is slow, is slower than direct loop,
it is an order slower than a matrix operation alternative.
Here is one example. The first apply version runs 19 seconds, the
second loop version runs 13 seconds, the third matrix version runs 1
second.
Jason Liao
rm(list=ls(all=TRUE))
test1 <- function()
{
u <- runif(n*m);
dim(u) <- c(n,m);
v <- apply(u, 2, crossprod);
}
test2 <- function()
{
u <- runif(n*m);
dim(u) <- c(n,m);
v <- numeric(m);
for(j in 1:m) v[j] <- crossprod(u[, j]);
}
test3 <- function()
{
u <- runif(n*m);
dim(u) <- c(n,m);
u <- u*u;
one <- rep(1, n);
v <- one %*% u;
}
n<-10;
m<-10000;
print(date());
for(i in 1:10) test1()
print(date());
for(i in 1:10) test2()
print(date());
for(i in 1:10) test3()
print(date());
=====
Jason G. Liao
Department of Biometry and Epidemiology
Medical University of South Carolina
135 Rutledge Ave., STE 1148, Charleston, SC 29425
phone (843) 876-1114, fax (843) 876-1126
http://www.geocities.com/jg_liao/index.html
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
This archive was generated by hypermail 2b30 : Fri 22 Jun 2001 - 18:58:40 EST