如何计算R中多个产品的日收益率

时间:2015-07-07 16:11:11

标签: r quantmod

我有一个如下数据集,其中包含2014-5-1至2014-11-30的46个产品价格历史记录:

prodid      price        date
19119665    27.89999962 11/25/2014
19119665    27.89999962 11/25/2014
19119665    26.89999962 11/27/2014
19119665    26.89999962 11/28/2014
19119665    26.89999962 11/30/2014
19141710    19.89999962 5/1/2014
19141710    19.89999962 5/1/2014
19141710    19.89999962 5/1/2014

我希望将每种产品视为库存,并计算这些产品的每日价格变化。

我已经考虑过使用quantmod的以下代码:

 periodReturn(data,period='daily',subset='prodid')

但似乎这段代码没有做它应该做的事情。我收到以下错误:

Error in try.xts(x) : 
Error in as.POSIXlt.character(x, tz, ...):character string is not in standard unambiguous format

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我不认为有一种方法可以实现你的要求。以下是dplyr的方法。

 dat %>% mutate(perx = price / lag(dat$price) - 1)
    prodid price       date        perx
1 19119665  27.9 11/25/2014          NA
2 19119665  27.9 11/25/2014  0.00000000
3 19119665  26.9 11/27/2014 -0.03584229
4 19119665  26.9 11/28/2014  0.00000000
5 19119665  26.9 11/30/2014  0.00000000
6 19141710  19.9   5/1/2014 -0.26022305
7 19141710  19.9   5/1/2014  0.00000000
8 19141710  19.9   5/1/2014  0.00000000