How can I refer to actual (n) and previous (n-1) elements in a vector?
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
<mariannestephan at 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