I work with an unbalanced, irregularly spaced section of the time series. My goal is to get a moving average lagging vector for the Quantity vector, segmented by Subject.
In other words, let's say that for Subject_1 the following Quanatities are observed: [1,2,3,4,5]. First I need to be late by 1, giving [NA, 1,2,3,4].
Then I need to take a moving average of order 3, getting [NA, NA, NA, (3 + 2 + 1) / 3, (4 + 3 + 2) / 3]
The above should be done for all entities.
panel <- data.frame(
as.factor(sort(rep(1:6,5))),
rep(1:5,6),
rnorm(30)
)
colnames(panel)<- c("Subject","Day","Quantity")
panelUNB <- subset(panel,as.numeric(Subject)!= Day)
panelUNB <- panelUNB[-c(15,16),]
, "", plm lag.
"Quanatity" , rollmean zoo:
panel$QuantityMA <- ave(panel$Quantity, panel$Subject, FUN = function(x) rollmean(
x,3,align="right",fill=NA,na.rm=TRUE))
"" DF.
, plm lag , , rollapply , (windowsize) .
StackExchange data.table, :
, " ".