【发布时间】:2018-12-25 12:22:05
【问题描述】:
我有一个数据表,其中包含一家公司的退货数据,如下所示:
df=structure(list(Date = structure(c(13236, 13237, 13238, 13239,
13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248,
13249, 13250, 13251), class = "Date"), IBES = c("@O5G", "@O5G",
"@O5G", "@O5G", "@O5G", "@O5G", "@O5G", "@O5G", "@O5G", "@O5G",
"@O5G", "@O5G", "@O5G", "@O5G", "@O5G", "@O5G"), MktAdjReturn = c(-0.00381466643441897,
-0.00834070809256926, -0.0193226301897589, NA, NA, -0.00885564092195712,
-0.051612619547402, -0.0065292323057804, 0.042244140103735, 0.003100395243401,
NA, NA, -0.00486229222347689, -0.0184708840023963, 0.00273824763632391,
-0.00510010246255499)), .Names = c("Date", "IBES", "MktAdjReturn"
), class = c("data.table", "data.frame"), row.names = c(NA, -16L
))
我想计算不包括当天的接下来 5 天的移动平均线。因此,代码应该跳过 NA 并获取下一个可用的返回值。
例如。对于第一个日期 2006-03-29,5 天移动平均线应包含:-0.008340708 ; -0.019322630 ; -0.008855641 ; -0.051612620 ; -0,006529232。
我试过了:
rollapply(MktAdjReturn,width = 5,FUN=mean,align = "left",fill = NA,na.rm=T), by=c("IBES")
但是,它也包含当前日期,我不确定它对 fill = NA 的确切作用。
【问题讨论】:
标签: r moving-average