Hi:
On Sun, Dec 26, 2010 at 4:18 AM, bbslover <dlu...@yeah.net> wrote: > > Dear all, > > My double for loop as follows, but it is little efficient, I hope all > friends can give me a "vectorized" program to replace my code. thanks > > x: is a matrix 202*263, that is 202 samples, and 263 independent > variables > > num.compd<-nrow(x); # number of compounds > diss.all<-0 > for( i in 1:num.compd) > for (j in 1:num.compd) > if (i!=j) { > Isn't this just X'X? > S1<-sum(x[i,]*x[j,]) > Aren't each of S2 and S3 just diag(X'X)? > S2<-sum(x[i,]^2) > S3<-sum(x[j,]^2) > sim2<-S1/(S2+S3-S1) > diss2<-1-sim2 > diss.all<-diss.all+diss2} > I tried s1 <- crossprod(x) s2 <- diag(s1) s3 <-outer(s2, s2, '+') - s1 s1/s3 This yields a symmetric matrix with 1's along the diagonal and quantities between 0 and 1 in the off-diagonal. Something like it could conceivably be used as a similarity matrix. Is that what you're looking for with sim2? I agree with Berend: it looks like a problem that could be easily solved with some matrix algebra. R can do matrix algebra quite efficiently, y'know... (BTW, I tried this on a 1000 x 1000 input matrix: system.time(myfunc(x)) user system elapsed 0.99 0.02 1.02 I expect it could be improved by an order of magnitude if one actually knew what you were computing... ) HTH, Dennis it will cost a long time to finish this computation! i really need "rapid" > code to replace my code. > > thanks > > kevin > > > -- > View this message in context: > http://r.789695.n4.nabble.com/how-to-replace-my-double-for-loop-which-is-little-efficient-tp3164222p3164222.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.