本人使用的是plyr中的ddply函数,想根据月份计算月波动率。首先我使用cut函数将月份分开,即
>date.bymonth=cut(d$date,breaks="month")
> d1=data.frame(d,date.bymonth)
> head(d1)
date index date.bymonth
1 1990-01-05 915.11 1990-01-01
2 1990-01-06 912.86 1990-01-01
3 1990-01-07 912.86 1990-01-01
4 1990-01-08 919.46 1990-01-01
5 1990-01-09 920.21 1990-01-01
6 1990-01-10 911.48 1990-01-01
然后使用ddply函数计算每个月的波动率
>vol=ddply(d1,.(date.bymonth),summarize,vol=sd(index))
但是得出来的数据并不是正确的
> head(vol)
date.bymonth vol
1 1990-01-01 124.9178
2 1990-02-01 116.4478
3 1990-03-01 123.0148
4 1990-04-01 277.0233
5 1990-05-01 174.7356
6 1990-06-01 222.8018
正确的数据 如1990-01-01应该是15.2
想问下大神们 这个是什么问题 应该如何解决 谢谢~


雷达卡



京公网安备 11010802022788号







