我仍然是R的新手,并且有一个如下所示的数据框:
> head(df)
UniqueID Disbursements Year
1 NL-KVK-41160054-100530 303742 2010
2 NL-KVK-41160054-100530 289829 2010
3 NL-KVK-41160054-100530 577072 2010
4 NL-KVK-41160054-100530 340292 2010
5 NL-KVK-41160054-100530 555826 2011
6 NL-KVK-41160054-100530 713332 2011
> tail(df)
UniqueID Disbursements Year
3041 NL-KVK-41160054-317/10481 200000 2009
3042 NL-KVK-41160054-317/10481 284500 2010
3043 NL-KVK-41160054-317/10481 737659 2010
3044 NL-KVK-41160054-317/10481 405664 2011
3045 NL-KVK-41160054-317/10481 10572 2012
3046 NL-KVK-41160054-317/10481 114035 2013
我试图按年度汇总所有支出,但在每个UniqueID内,重复有多年的UniqueId。这样我的结果数据框将如下所示:
UniqueID Disbursements Year
NL-KVK-41160054-100530 1510935 2010
NL-KVK-41160054-100530 769158 2011
...
UniqueID Disbursements Year
NL-KVK-41160054-317/10481 200000 2009
NL-KVK-41160054-317/10481 1022159 2010
NL-KVK-41160054-317/10481 405664 2011
NL-KVK-41160054-317/10481 10572 2012
NL-KVK-41160054-317/10481 114035 2013
根据我如何提取这些数据并将其纳入此数据框,应该没有任何NA可以应对。
我尝试过使用聚合:
amt_by_year <- aggregate(Disbursements~UniqueID+Year, df, FUN=sum)
但是这引发了Error in model.frame.default(formula = Disbursements ~ UniqueID + Year, : variable lengths differ (found for 'Year')
我猜错的错误,因为它假设在UniqueId和Year中会有相同数量的唯一值。
我还试过ddply amt_by_year <-ddply(NEWerDF,.(DateYear,UniqueID),summarise, Disbursements = sum(as.numeric(Disbursements)))
并且因强制引入的NAs而犯了更多错误。
我觉得我缺少一些基本的东西,因为这肯定不是第一次有人遇到这个问题。但是我搜索了stackoverflow并且只发现了提问者希望总计相当于ID和支出的实例,或者只有两列或者其他东西的情况,所以如果之前已经提出过这样的话,请道歉。
提前致谢!