[R] How to change row value based on previous row value

Rees, David david.rees at citi.com
Mon Oct 8 14:24:13 CEST 2007


Hi,

I would like to fix the data in the following data.frame, and I am
having trouble coding this in R - help please!

> x
  A    B   x    y     z
1 1 10.0 100 1000 10000
2 2 19.8 200 2000 20000
3 3 20.1 300 3000 30000
4 4 20.3 400 4000 40000
5 5 30.0 500 5000 50000

Column B is the problem.

The logic I need to apply (this is in pseudo code ... I don't know how
to do this in R)

for all rows, r
if x$B[r] <= x$B[r-1] + a 
	then x$B[r] = x$B[r-1]

i.e. If a=1, then I would end up with the data.frame

> x
  A    B   x    y     z
1 1 10.0 100 1000 10000
2 2 19.8 200 2000 20000
3 3 19.8 300 3000 30000
4 4 19.8 400 4000 40000
5 5 30.0 500 5000 50000

Many thanks in advance for any help,

Regards,
David



More information about the R-help mailing list