2011/4/8 Juan Carlos Borrás <jcbor...@gmail.com>: > #Use the indexes of S in a sapply function. > > N <- 10 > S <- sample(c(0,1), size=N, replace=TRUE) > v1 <- sapply(c(1:N-1), function(i) S[i]&&S[i+1])
You can achieve the same v1 using v1.2 <- S[2:N-1] & S[2:N] .. or if you insist on having NA as the first element, -- c(NA, v1.2) Vectorization is more efficient than loops but this need not be true for the *apply functions. > > # Then > v2 <- (P > m) > > # And I guess you can fill up the rest. Beware of the boundary > condition (the NA in v1) > > Cheers, > jcb! > _______________________ > http://twitter.com/jcborras > > On Fri, Apr 8, 2011 at 5:30 AM, Worik R <wor...@gmail.com> wrote: >> Friends. >> >> I cannot simplify this much, and I think the loop is unavoidable. As a >> recovering C programmer I want to avoid loops and in cases like this I >> almost allways can by using an apply function. But I suspect in this case >> there is nothing I can do. >> >> It is a finance example where a price series is compared to a moving >> average. If the price goes above the average, plus a bit, buy the >> security. If we are holding the security and the price dips below the >> moving average sell it. >> >> P is the series of prices >> >> m is the moving average series >> >> S <- P>(m*1.005) >> S[S]<-1 >> >> Now S is my signal it is 1 when P > m plus a margin of 0.005 x m >> >> But now I need to control when S goes from 1 to 0. As far as I can tell >> this is the only way... >> >> for(i in 2:length(S)){ >> if(S[i]==0 && S[i-1] == 1){ >> ## Was long, now short. SHould I be short? Is P>m still? >> if(P[i] > m[i]){ >> ## Stay long >> S[i] <- 1 >> } >> } >> } >> >> As I mentioned I am a recovering C programmer, so I have a buit in loop >> reflex, but I am struggling to adapt. But this one has me beat! Can anyone >> help? >> >> cheers >> W >> >> [[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. >> > > ______________________________________________ > 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. > ______________________________________________ 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.