我需要计算最近的值,即每组的最后几行,然后计算特定列的平均值
Input data:
Date Prod Bucket Bal
31/01/2013 a01 1001 10
31/01/2013 a01 1002 20
31/01/2013 a01 1003 10
31/01/2013 a01 1004 24
31/01/2013 a01 1005 20
28/02/2013 a01 1001 20
28/02/2013 a01 1002 15
28/02/2013 a01 1003 25
28/02/2013 a01 1004 20
28/02/2013 a01 1005 50
31/03/2013 a01 1001 30
31/03/2013 a01 1002 10
31/03/2013 a01 1003 20
31/03/2013 a01 1004 10
31/03/2013 a01 1005 25
30/04/2013 a01 1001 20
30/04/2013 a01 1002 20
30/04/2013 a01 1003 15
30/04/2013 a01 1004 25
30/04/2013 a01 1005 10
31/01/2014 a02 1001 30
31/01/2014 a02 1002 10
31/01/2014 a02 1003 20
31/01/2014 a02 1004 10
31/01/2014 a02 1005 20
28/02/2014 a02 1001 20
28/02/2014 a02 1002 15
28/02/2014 a02 1003 25
28/02/2014 a02 1004 10
28/02/2014 a02 1005 20
31/03/2014 a02 1001 15
31/03/2014 a02 1002 25
31/03/2014 a02 1003 20
31/03/2014 a02 1004 50
31/03/2014 a02 1005 20
30/04/2014 a02 1001 10
30/04/2014 a02 1002 20
30/04/2014 a02 1003 20
30/04/2014 a02 1004 15
30/04/2014 a02 1005 20
预期产出:
Date Prod Bucket Bal Most_recent 3_month_avg 6_month_avg 12_month_avg 12 month Max Avg.
31/01/2013 a01 1001 10
31/01/2013 a01 1002 20
31/01/2013 a01 1003 10
31/01/2013 a01 1004 24
31/01/2013 a01 1005 20
28/02/2013 a01 1001 20
28/02/2013 a01 1002 15
28/02/2013 a01 1003 25
28/02/2013 a01 1004 20
28/02/2013 a01 1005 50
31/03/2013 a01 1001 30
31/03/2013 a01 1002 10
31/03/2013 a01 1003 20
31/03/2013 a01 1004 10
31/03/2013 a01 1005 25
30/04/2013 a01 1001 20 20
30/04/2013 a01 1002 20 20
30/04/2013 a01 1003 15 15
30/04/2013 a01 1004 25 25
30/04/2013 a01 1005 10 10
31/01/2014 a02 1001 30
31/01/2014 a02 1002 10
31/01/2014 a02 1003 20
31/01/2014 a02 1004 10
31/01/2014 a02 1005 20
28/02/2014 a02 1001 20
28/02/2014 a02 1002 15
28/02/2014 a02 1003 25
28/02/2014 a02 1004 10
28/02/2014 a02 1005 20
31/03/2014 a02 1001 15
31/03/2014 a02 1002 25
31/03/2014 a02 1003 20
31/03/2014 a02 1004 50
31/03/2014 a02 1005 20
30/04/2014 a02 1001 10 10
30/04/2014 a02 1002 20 20
30/04/2014 a02 1003 20 20
30/04/2014 a02 1004 15 15
30/04/2014 a02 1005 20 20
最近使用的代码:
Most_recent <- DF[,ncol(DF)]
MR <- cbind(Most_recent)
但这只会在有一组数据时打印,但在这个数据中,有2组a01和a02,并且会更多... a03,a04等等。
类似需要计算Bal的平均值。
只需要使用,data.table,reshape,zoo和gtools - 只有这4个库。
请提前帮助,谢谢。