gpt4 book ai didi

r - 聚合多种功能

转载 作者:行者123 更新时间:2023-12-04 09:37:08 40 4
gpt4 key购买 nike

是否有可能从以下数据框 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

我可以使用聚合函数将以下输出作为数据帧 df2
 Branch Number_of_loans Loan_Amount Total_TAT
A 3 520 15.0
B 2 350 3.5

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

最佳答案

Base package:


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

输出
  Branch Loan_Amount  TAT Number_of_loans
1 A 520 15.0 3
2 B 350 3.5 2

Package 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")

输出
  Branch Number_of_loans Loan_Amount  TAT
1 A 3 520 15.0
2 B 2 350 3.5

数据
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))

关于r - 聚合多种功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561050/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com