微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算滚动收益

如何解决计算滚动收益

我有一个3列的数据框。我想做的是计算每个月周期(或换句话说,每一行)(如果有)在选定月份滚动期内的收益乘积。这是数据的基本结构。

set.seed = 100
assets <- c("A","B","C","D","E","F","G","H","I")
FileDate <- seq(as.Date("2011-12-30"),as.Date("2019-01-31"),by="months")
df <- merge(x = assets,y = FileDate,all.x = TRUE)
df$return <- runif(774,min=0,max=1)

最后应该是一个数据帧,其中添加一个新列,并带有该时间帧的选定期间累计回报。例如,下面显示了四个月的回报。根据该数据计算的2012年3月30日的4个月回报为: (((1 + 0.81 / 100)(1 + 0.715 / 100)(1 + 0.27 / 100)*(1 + 0.80 / 100)-1)* 100

对于X列下的每个值都会重复此操作。

enter image description here

解决方法

我最终使用了mutate功能,在那里您可以设置滞后宽度。在我想要的最终版本中

finally

此特定代码会滚动产生5个月的平均值。如果按X列排序,则可以在excel中查看并重新创建。

d

我还找到了一种创建滞后的方法,因此我可以将4个先前值用于观察并计算均值:

    library(dplyr)
    library(zoo)

    # Create Test Dataframe
    set.seed = 100
    assets <- c("A","B","C","D","E","F","G","H","I")
    FileDate <- seq(as.Date("2011-12-30"),as.Date("2019-01-31"),by="months")
    df <- merge(x = assets,y = FileDate,all.x = TRUE)
    df$performance <- runif(774,min=0,max=1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。