To expand a bit on Uwe's comments: R is vectorized and loops are notoriously inefficient. Consider the following:

start.time <- proc.time()
set.seed(1)
X <- array(rnorm(1000), dim=c(100, 10))
X.1 <- apply(X, 2, mean)
print(var(X.1))
(elapsed.time <- proc.time()-start.time)

start.ttime <- proc.time()
set.seed(1)
X <- array(NA, dim=c(100, 10))
for(j in 1:10)for(i in 1:100)X[i,j] <- rnorm(1)
X. <- rep(0, 10)
X.. <- 0
varX <- 0
for(j in 1:10){
for(i in 1:100)
(X.[j] <- X.[j]+X[i,j])
X.[j] <- X.[j]/100 X.. <- X..+X.[j]
varX <- varX+X.[j]^2
}
X.. <- X../10
varX <- (varX-10*X..^2)/9
print(varX)
(elapsed.time2 <- proc.time()-start.time)


elapsed.time
elapsed.time2

# In R 1.8.1: > elapsed.time
[1] 0.00 0.00 0.54 NA NA
> elapsed.time2
[1] 0.05 0.00 1.73 NA NA
>
# In S-_lus 8.2: > elapsed.time
[1] 0.04 0.00 0.05 0.00 0.00
> elapsed.time2
[1] 0.37 0.06 0.44 0.00 0.00


hope this helps. spencer graves

Uwe Ligges wrote:

Raphael Schoenle wrote:

Hi,
How can I assign memory in R? My simulations are very slow.


What do you mean with "assign memory in R"?
You might want to optimize your code...

Uwe Ligges


Thanks!,
-R


[[alternative HTML version deleted]]

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to