多种功能聚合

Anu*_*hit 3 aggregate r

从以下数据帧 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
Run Code Online (Sandbox Code Playgroud)

我可以使用聚合函数将以下输出作为数据帧 df2 获取

 Branch Number_of_loans Loan_Amount Total_TAT
      A               3         520      15.0
      B               2         350       3.5
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 nrow 来计算 number_of_loans 并合并,但我正在寻找更好的方法。

mpa*_*nco 5

基础包:

df1 <- aggregate(.~ Branch, df, FUN = "sum")
df2 <- setNames(aggregate(Loan_Amount~Branch, df, length)[2], c("Number_of_loans"))
cbind(df1, df2)
Run Code Online (Sandbox Code Playgroud)

输出

  Branch Loan_Amount  TAT Number_of_loans
1      A         520 15.0               3
2      B         350  3.5               2
Run Code Online (Sandbox Code Playgroud)

包裹sqldf

library(sqldf)
sqldf("SELECT Branch, COUNT(Loan_Amount) Number_of_loans, SUM(Loan_Amount) Loan_Amount, SUM(TAT) TAT 
      FROM df 
      GROUP BY Branch")
Run Code Online (Sandbox Code Playgroud)

输出

  Branch Number_of_loans Loan_Amount  TAT
1      A               3         520 15.0
2      B               2         350  3.5
Run Code Online (Sandbox Code Playgroud)

数据

df <- structure(list(Branch = structure(c(1L, 1L, 1L, 2L, 2L), .Label = c("A", 
"B"), class = "factor"), Loan_Amount = c(100L, 120L, 300L, 150L, 
200L), TAT = c(2, 4, 9, 1.5, 2)), .Names = c("Branch", "Loan_Amount", 
"TAT"), class = "data.frame", row.names = c(NA, -5L))
Run Code Online (Sandbox Code Playgroud)