[R] how to get growth rate of a (time series) data?

Blaser Nello nblaser at ispm.unibe.ch
Wed Jun 19 13:50:34 CEST 2013


diff(test$Y)/(test$Y)[-1] calculates (Y(t)-Y(t-1))/Y(t). 

To get (Y(t)-Y(t-1))/Y(t-1) instead, use 
diff(test$Y)/(test$Y)[-length(test$Y)]
or better
diff(test[,"Y"])/test[-nrow(test), "Y"]

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Yanyuan Zhu
Sent: Mittwoch, 19. Juni 2013 13:04
To: r-help at r-project.org
Subject: [R] how to get growth rate of a (time series) data?

Hello all, now I'm trying to switch from Excel to R to deal with the
data, and as a newbie i got the problem as follows.

suppose I have a data named "test"
test<- data.frame(year=c(1996:2011),
Y=c(74163.6,81658.5,86531.6,91125.0,98749.0,109028.0,120475.6,136613.4,1
60956.6,187423.5,222712.5,266599.2,315974.6,348775.1,402816.5,465731.3))
in which Y means the GDP of a country

If i want to get Delta Y = Y(t)-Y(t-1) , i could use diff() in R
diff(test$Y)

but what if i want to get gY=(Y(t)-Y(t-1))/Y(t-1)?
seems diff(test$Y)/(test$Y)[-1] doesnt work ...

thanks in advance

	[[alternative HTML version deleted]]

______________________________________________
R-help at 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.



More information about the R-help mailing list