我有一个形式的(大)数据框:
Variable Country 2007-Q1 2007-Q2 2007-Q3 2007-Q4 2008-Q1 2008-Q2 2008-Q3 2008-Q4
Var1 AR:Argentina 69.8 67.3 65 63.6 60.4 56.6 54.4 57.3
Var2 AR:Argentina 191.298 196.785 196.918 207.487 209.596 219.171 216.852 213.124
Var3 AR:Argentina 594.67 606.157 620.783 652.59 662.784 663.191 676.188 735.065
Var4 AR:Argentina 49.6 47.5 45.2 44.4 41.7 38.7 36.8 39.3
Var5 AR:Argentina 135.971 138.885 137.005 144.903 144.757 149.803 146.492 146.102
Var6 AR:Argentina 422.679 427.808 431.909 455.75 457.752 453.288 456.791 503.906
Var8 AR:Argentina 9.657 10.755 11.856 13.267 14.47 16.523 16.727 16.235
本质上,每一行每年都有 4 列数据,按季度排序。我想把它变成年度数据。
一种方法是简单地对每 4 列求和(例如,对 2008-Q1:2008-Q4 求和)。我想另一种方法是过滤在(2007-** 或其他时间)中共享同一年份的列,然后RowSums()
在它们上运行,但这听起来效率要低得多。
我希望得到一个看起来像这样的数据框:
Variable Country 2007 2008
Var1 AR:Argentina SUMXX SUMXX
甚至更好:
Country Year Var1 Var2
AR:Argentina 2007 SUMXX SUMYY
AR:Argentina 2008 SUMXX SUMYY
.
第二种格式会更受欢迎,但第一种格式也很好。主要的是,我需要能够相对容易地为一个变量、一个国家、所有年份选择数据。如果我可以为任何给定变量选择所有国家的所有年份 - 更好(第二种格式)。
除了运行嵌套循环等之外,还有什么简单的方法可以做到这一点?