Hi Marianne, You have to be very careful with subsetting when doing something like that - that's where you went wrong with your original construct. This version works: > v<-c(3,6,8,1,1,3,9,5,6,3) > a <- numeric(length(v)-1) > for (i in 2:length(v)) {a[i-1] <- v[i-1] + v[i]} > a [1] 9 14 9 2 4 12 14 11 9
But here's a more elegant way: > v[1:(length(v)-1)] + v[2:length(v)] [1] 9 14 9 2 4 12 14 11 9 and I'm sure there are even nicer solutions. Sarah On Mon, Dec 6, 2010 at 12:13 PM, Marianne Stephan <mariannestep...@hotmail.com> wrote: > > Hello, > > > How can I apply a function on a vector that refers to actual (n) and previous > elements in the vector (e.g. n-1)? > > > For example: > I would like to calculate the sum of (n-1) + n for each element of a vector > and get a vector as a result. > > > Besides others I tried this: > > > v<-c(3,6,8,1,1,3,9,5,6,3) > for (i in 1:NROW(v)){a[i]<-a[i-1]+a[i]} > > > I would like to get this result: > 9,14,9,2,4,12,14,11,9 > > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ 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.