blakc05 blakc05 - 3 months ago 8
R Question

How to calculate returns from a vector of prices?

I have to calculate the return of a vector that gives a historical price series of a stock. The vector is of a form:

a <- c(10.25, 11.26, 14, 13.56)


I need to calculate daily gain/loss (%) - i.e. what is the gain it has from 10.25 to 11.26 then from 11.26 to 14 etc.

Is there a function to calculate this automatically?

Answer

Using your sample data, I think you mean the following:

a <- c(10.25, 11.26, 14, 13.56) 
> diff(a)/a[-length(a)]
[1]  0.09853659  0.24333925 -0.03142857

diff returns the vector of lagged differences and a[-length(a)] drops the last element of a.

Comments