基于日期与金额的零利息分期还款计划实现问题(R语言)
问题:为到期还款金额创建周五分摊还款计划
我有以下包含到期日与对应还款金额的数据:
data <- tribble( ~Date, ~Amount, "26/11/2024", 387, "04/01/2025", 879, "08/02/2025", 954, "22/02/2025", 1849, "25/02/2025", 103, "05/03/2025", 2400 )
需求:为每笔金额创建零利息还款计划,将金额分摊至到期日前的每个周五。例如,2024年11月26日到期的387元,在起始日期(2024年11月5日)至到期日之间有3个周五,每个周五需还款387/3=129元。
我已经编写了以下R代码:
library(tidyverse) library(lubridate) # calculate a sequence of dates from now until latest payment date all_dates <- seq(as.Date("2024-11-05"),as.Date('2025-03-05'),by = 1) %>% tibble() %>% rename("list_of_dates" = ".") %>% mutate(dummy_amt = 0) # create Friday payment plan data2 <- data %>% mutate(Date = strptime(as.character(Date), "%d/%m/%Y")) %>% mutate(Date = format(Date, "%Y-%m-%d")) %>% mutate(Date = as.Date(Date)) %>% right_join(all_dates, by = c("Date" = "list_of_dates")) %>% select(-dummy_amt) %>% mutate(Amount = replace_na(Amount, 0)) %>% arrange(Date) %>% mutate(Day = wday(Date, label = TRUE, abbr = FALSE)) %>% filter(Day == "Friday" | Amount != 0) %>% mutate(no_fridays = if_else(Day == "Friday", 1, 0)) %>% mutate(cum_fridays = cumsum(no_fridays))
目前我已经能计算截至某一日期的累计周五数量,但卡在下一步:如何为每个到期日前的周五分配对应还款额。理想的输出格式如下(以前两笔金额为例):
Date Amount Day cum_fridays payment1 payment2 <date> <dbl> <ord> <dbl> <dbl> <dbl> 1 2024-11-08 0 Friday 1 129 97.7 2 2024-11-15 0 Friday 2 129 97.7 3 2024-11-22 0 Friday 3 129 97.7 4 2024-11-26 387 Tuesday 3 0 0 5 2024-11-29 0 Friday 4 0 97.7 6 2024-12-06 0 Friday 5 0 97.7 7 2024-12-13 0 Friday 6 0 97.7 8 2024-12-20 0 Friday 7 0 97.7 9 2024-12-27 0 Friday 8 0 97.7 10 2025-01-03 0 Friday 9 0 97.7 11 2025-01-04 879 Saturday 9 0 0
请求帮助完成该功能的实现。
内容的提问来源于stack exchange,提问作者J K
相关产品推荐
相关产品推荐

