blakc05 - 10 months ago 47

R Question

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.

Source (Stackoverflow)