根据R中的条件求和的列

时间:2020-09-28 10:54:03

标签: r

我有以下数据框

Accountnumber <- c("00650D-02876","00650D-02876")
Month <- c(1:14,1:20)
rate <- runif(n=1, min=1e-12, max=.9999999999)
df <- data.frame(Accountnumber,Month,rate)

对于每个帐号,我必须对前12个月的费率进行汇总以得出12mRate,并且对帐户的整个期限进行求和以得出TermRate。每个帐户的期限都不同,例如00650D-02876的期限为14(每月直到14),00650D-02877的期限为20(每月直到20)

预期的食物

Accountnumber <- c("00650D-02876","00650D-02876")
rate_12 <- c(9.2716,9.2716)
TermRate <- c(10.8169,15.45282)
df2 <- data.frame(Accountnumber,rate_12,TermRate)

1 个答案:

答案 0 :(得分:0)

我建议:

library(data.table)
setDT(df)
df[, rate_12 := .SD[1:12, .(sum(rate))], by = Accountnumber][, rate_term := sum(rate), by = Accountnumber][, .(rate_12 = first(rate_12),rate_term =  first(rate_term)), by = Accountnumber]