You can compute cor by hand without loops but the code is not much faster (dim(slp)[1]==3):

<<*>>=
set.seed(13)
n<-3
y<-1:n
slp<-array(rnorm(n*73*144),c(3,73,144))
n.1<-length(y)-1

print(system.time({
rData <- array(0,c(73,144))   # array to store results
  for (i in 1:73) {
       for (j in 1:144) {
             rData[i,j] <- cor(slp[,i,j],y)
       }
   }
}))

print(system.time({
n.1<-length(y)-1
mean.slp<-apply(slp,c(2,3),mean)
mean.y<-mean(y); sy<-var(y)^0.5
sqslp<-apply(slp*slp,c(2,3),sum)/n.1-mean.slp^2*n/n.1
sslpy<-apply(slp*y,c(2,3),sum)/n.1-mean.slp*mean.y*n/n.1
rslpy<-sslpy/(sqslp^0.5*sy)
}))

print(all(round(100*rslpy)==round(100*rData)))

@
output-start
[1] 1.49 0.00 1.49 0.00 0.00
[1] 0.92 0.00 0.92 0.00 0.00
[1] TRUE
output-end

Peter Wolf


Uwe Ligges wrote:


Maurice McHugh wrote:

Hello everyone-

I have a 3-d array with the 1st dimension being monthly mean data that
I would like to correlate with some time series index, for example, and save the coefficients in an array.


The code I am currently running is....


rData <- array(0,c(73,144)) # array to store results for (i in 1:73) { for (j in 1:144) { rData[i,j] <- cor(slp[,i,j],y) } }

Rather than running this analysis embedded with two outer loops, are =
there any more efficient ways of doing this?
Many thanks!



Don't know whether it's more efficient:
You can try to apply() the function rcorr() in package "Hmisc" to your problem...


Uwe Ligges




Maurice

Maurice McHugh
Department of Geography and Anthropology
Louisiana State University
Baton Rouge, LA
    [[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