[R] how to calculate the return?

Denver XU financialengine at gmail.com
Sun Nov 25 09:25:45 CET 2007


thank you Gabor, I am sure my data is a data.frame and I think you a
lillte bit misunderstood my question.
thank you Patrick, your answer is what I want to find.




2007/11/24, Denver XU <financialengine at gmail.com>:
> Hi, R-users,
>   data is a matrix like this
>          AMR      BS      GE      HR      MO      UK   SP500
> 1974 -0.3505 -0.1154 -0.4246 -0.2107 -0.0758  0.2331 -0.2647
> 1975  0.7083  0.2472  0.3719  0.2227  0.0213  0.3569  0.3720
> 1976  0.7329  0.3665  0.2550  0.5815  0.1276  0.0781  0.2384
> 1977 -0.2034 -0.4271 -0.0490 -0.0938  0.0712 -0.2721 -0.0718
> 1978  0.1663 -0.0452 -0.0573  0.2751  0.1372 -0.1346  0.0656
> 1979 -0.2659  0.0158  0.0898  0.0793  0.0215  0.2254  0.1844
> 1980  0.0124  0.4751  0.3350 -0.1894  0.2002  0.3657  0.3242
> 1981 -0.0264 -0.2042 -0.0275 -0.7427  0.0913  0.0479 -0.0491
> 1982  1.0642 -0.1493  0.6968 -0.2615  0.2243  0.0456  0.2141
> 1983  0.1942  0.3680  0.3110  1.8682  0.2066  0.2640  0.2251
> I want  to calculate the return say AMR,so I use
> re=numeric(10)
> for (i in 2:nrow(data))
>     re[1]=0
>    re[i]=log(data[i]/data[i-1])
> to my surprise, the result is
> > re
>  [1]  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000  0.00000
>  [9]  0.00000 -1.70109
> I don't know what's wrong with my code, and is there alternative way
> to do the same?
> thanks
>
> Denver
>



More information about the R-help mailing list