【发布时间】:2021-03-09 02:53:31
【问题描述】:
我正在尝试为具有 3 个单独帐户的数据框创建摊销计划。每个帐户都有一行详细说明帐户的贷款信息,即起始余额、年利率、贷款期限和每年的付款。
我想要做的是,使用我的数据框中的贷款信息,创建一个贷款摊销时间表,以详细说明贷款期间所需的每月付款。我下面是一个计算总付款、本金支付和利息支付的函数。我想要的是将该函数应用于我的数据框中的帐户。我最近的尝试是使用 dplyr::group_by 函数,但我的代码似乎不适用于具有多个帐户的数据框,而它适用于单个帐户。
我希望能得到一些帮助,我很确定问题是我如何调用函数和分组,但我不太确定。任何帮助深表感谢!谢谢!
q<-data.frame(PersonID=c("A","B","C"),
StartingBalance=c(100,900,500),
AnnualRate=c(.02,.05,.04),
NumberOfPayments=c(60,60,60),
PaymentFrequency=c(12,12,12))
amortisationschedule <- function(amount, annualinterestrate, paymentsperyear, years) {
nper = paymentsperyear * years
rate = annualinterestrate / paymentsperyear
AmortisationSchedule <- tibble(
Principal = map_dbl(1:nper, function(x)
PPMT(rate,
x,
nper,
amount)),
Interest = map_dbl(1:nper, function(x)
IPMT(rate,
x,
nper,
amount))
) %>% mutate(Instalment = Principal + Interest,
Balance = round(amount + cumsum(Principal),2))
return(AmortisationSchedule)
}
q2<-q %>%
group_by(PersonID) %>%
nest(test = c(-PersonID)) %>%
mutate(test = map(quux, amortisationschedule(StartingBalance,AnnualRate,PaymentFrequency,NumberOfPayments))) %>%
unnest(test) %>%
ungroup()
【问题讨论】:
标签: r