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

Joshua Ulrich josh.m.ulrich at gmail.com
Wed Jun 19 13:42:37 CEST 2013

On Wed, Jun 19, 2013 at 6:24 AM, R. Michael Weylandt
<michael.weylandt at gmail.com> wrote:
> On Wed, Jun 19, 2013 at 12:04 PM, Yanyuan Zhu <yyz at tongji.edu.cn> wrote:
>> 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,160956.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 ...
> Odd, I would have thought it did.
> No matter anyways: if you are using time series data, I'd strongly
> recommend that you place your data in an object of the "xts" class and
> use all of the time series functionality available for those objects.
> Notably, you'll also want to load the "TTR" package (all of these are
> available through the install.packages() function off the CRAN mirror
> system) and to use its ROC function.
But note that TTR::ROC uses continuous, not discrete, compounding by default.

So you need:
ROC(test$Y, n=1, type="discrete")

Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com

More information about the R-help mailing list