Calculate percentage change in an R data frame
Try this:
R> data/stats::lag(data,-1) - 1 data.x1 data.x2 data.x32010 Q4 1.000000 0.0909091 0.04761902011 Q1 0.500000 0.0833333 0.04545452011 Q2 0.333333 0.0769231 0.04347832011 Q3 0.250000 0.0714286 0.04166672011 Q4 0.200000 0.0666667 0.04000002012 Q1 0.166667 0.0625000 0.03846152012 Q2 0.142857 0.0588235 0.03703702012 Q3 0.125000 0.0555556 0.03571432012 Q4 0.111111 0.0526316 0.0344828R>
Something like this?
> diff(data)/data[-nrow(data),] * 100 x1 x2 x32010 Q4 100.00000 9.090909 4.7619052011 Q1 50.00000 8.333333 4.5454552011 Q2 33.33333 7.692308 4.3478262011 Q3 25.00000 7.142857 4.1666672011 Q4 20.00000 6.666667 4.0000002012 Q1 16.66667 6.250000 3.8461542012 Q2 14.28571 5.882353 3.7037042012 Q3 12.50000 5.555556 3.5714292012 Q4 11.11111 5.263158 3.448276