具有rollmean功能的面板数据的功能条件 - zoo package R

时间:2014-06-10 20:21:28

标签: r conditional-statements zoo moving-average

在rollmean函数(动物园包)上,

SP_stock$mean_vol_260<-ave(as.numeric(SP_stock$vol), SP_stock$ID, FUN=function(x) rollmean(x,k=260, na.pad=T, align="right"))

我有一个错误说:

 Error : k <= n is not TRUE 

因为我的某些ID没有足够的价值(260)。

我想设置一个条件来仅对$ vol上至少有260个值的ID执行rollmean功能。

如果可能的话,尽可能多地使用rollmean函数,对另一个值最多260。

非常感谢。

1 个答案:

答案 0 :(得分:2)

只需设置k = min(NROW(x), 260)

SP_stock$mean_vol_260 <- ave(as.numeric(SP_stock$vol), SP_stock$ID,
  FUN=function(x) rollmeanr(x, k=min(NROW(x), 260), na.pad=TRUE))