时间:2017-08-23 07:15:04

标签: r dataframe data.table reshape

我需要计算最近的值,即每组的最后几行,然后计算特定列的平均值

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个库。

请提前帮助,谢谢。

0 个答案:

没有答案