从下面的 Dataframe DF1中
Branch Loan_Amount TAT
A 100 2.0
A 120 4.0
A 300 9.0
B 150 1.5
B 200 2.0
我可以使用聚合函数来获得以下输出作为 Dataframe df2
Branch Number_of_loans Loan_Amount Total_TAT
A 3 520 15.0
B 2 350 3.5
我知道我可以使用nrow来计算number_of_贷款和merge,但我正在寻找一种更好的方法。
6条答案
按热度按时间ryhaxcpt1#
基本 Package :
输出
Package
sqldf
:输出
数据
cfh9epnr2#
使用dplyr,你可以这样做:
输出
资料
xe55xuns3#
使用data.table
ldfqzlk84#
这是一个老帖子,但在一个常见的操作,应该有一个更容易的解决方案,在我看来。
这里有一个可能更简单的单行替代方案。
aggregate2()
是jumbled repo中的一个函数,我刚刚在基函数aggregate
的基础上构建了它。它为每个FUN
函数调用一次aggregate
,前后都做了一些工作。与
aggregate
不同,它接受多个函数。与dplyr解决方案不同,它将所有这些函数应用于所有x
变量,而无需例如每个变量一个Loan_Amount = sum(Loan_Amount),
。h6my8fg25#
这是一个很笨拙且效率低下的方法,但它很有效,也很有趣(它使用了
aggregate()
):生成所需的 Dataframe :
ctrmrzij6#
SSBtools
包中的函数aggregate_multiple_fun
是aggregate
的 Package 器,它允许多个函数和多个变量的函数。输出:
此外,有几种方法可以直接或通过函数名指定输出变量名。请注意,
aggregate
只被调用一次。