[R] Odp: how to speed up this for loop?
Petr PIKAL
petr.pikal at precheza.cz
Tue Jul 22 14:40:26 CEST 2008
Hi
r-help-bounces at r-project.org napsal dne 22.07.2008 01:24:05:
>
> Could anyone tell me a better way to achieve the output of this for
loop? It
> seems to run quite slow. I'm sure there must be a more consise way to
sum
> from FN to LN, excluding positive values, for each row.
It is difficult to understand what you really want as we do not have R,
FN, LN and Temp.
> vec<-rnorm(100)
> sum(vec[vec<0])
[1] -45.72518
Gives you sum of vec values which are lower than zero. It shall be easy to
extend it to set of vectors or matrix.
> mat<-rnorm(120)
> dim(mat)<-c(10,12)
> apply(mat, 2, function(x) sum(x[x<0]))
[1] -0.9543727 -3.9965437 -6.7924017 -1.4949170 -3.8042263 -6.5552674
-2.6386912 -3.3587444 -6.3740483 -3.1178593 -7.2580333 -3.2709297
There are other options but you shall follow posting guide to obtain
better answers.
Regards
Petr
>
> #sum between FN and LN, excluding positive values
> for(i in 1:R){
> for(j in FN[i]:LN[i]){
> if(Temp[i,j]<0)
> sum[i] <- sum[i] + sum(Temp[i,j])}}
>
> Cheers,
> R
> --
> View this message in context:
http://www.nabble.com/how-to-speed-up-this-for-
> loop--tp18579577p18579577.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list