Hello,

Well, in this case, you're simply applying a rolling mean with window of 2. Package 'zoo' has the rollmean function that does exactly this sort of thing

install.packages("zoo")
library(zoo)
x <- 1:10
rollmean(x, 2)

Then, check out the source for rollmean by simply typing

rollmean.default

at the R prompt. See how they did it. I realize not a direct answer to your question, but hopefully gets you started. You'll have to think about it on a case by case basis in general.

HTH,
Erik

Kinoko wrote:
Thanks for the replies

Sorry for being unclear.

I am asking if there is a way to process a vector in a way
that uses references to other elements of the same vector.
And doing this without a for-loop.

Here is a running code:

<code>
 complexFn <- function(a,b){
   c <- (a+b)/2
   return(c)
 }

 x <- 1:10
 y <- rep(NA, length(x))

 for (i in 1:length(x)){
     if(i>1){
         y[i] = complexFn(x[i-1], x[i])
     }
 }
 print(y)


</code>

And here is another attempt without the for-loop.

<code>
x <- 1:10
x1 <- c(NA, x)
length(x1)<-length(x)

y<-mapply(complexFn,x,x1)
print(c(y))
</code>

If someone could tell me the normal/elegant/effective/R way of
doing this kind of vector processing, that would highly appreciated.

best,

gabor

______________________________________________
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.

Reply via email to