我得到了下面的数据框:
Loans <- data.frame(
ID = c("215781","832567","721536"),
From = c("01-01-2023","04-15-2022","09-23-2021"),
End = c("05-02-2023","10-15-2023","12-23-2021"),
Type = c("Monthly","Quarterly","Monthly"))
我需要创建另一个数据框,其中包含每个贷款的每个内部周期的ID和日期行,我创建的这个循环不正确,但得到了我想要做什么的想法。如果删除循环部分,它适用于1行
library(bizdays)
Base <- data.frame("TM",today())
colnames(Base) <- c("TM","InterestDates")
for (i in Loans[i,]){
df <- as.data.frame(seq.Date(Loans$From,Loans$Until,by="month"))
colnames(df) <- "InterestDates"
df$TM <- Loans$TM
Base <- rbind(Base,df)
}
这样的结果就是预期的输出
ID | InterestDates
250414 | 2022-05-16
250414 | 2022-06-16
250414 | 2022-07-18
250414 | 2022-08-16
1条答案
按热度按时间bxjv4tth1#
所以我猜你会想要这样的东西:
你的原始代码有几个问题。
Base <- data.frame("TM",today())
使 Dataframe 已具有一个条目,而不是空 DataframeLoans
Dataframe 的列From
和End
不是seq.Date
命令所需的date
TM
列,但我从输出中猜测,您无论如何都需要ID
列Loans[i,]
不起作用,因为i
不存在-不能通过i
定义i
。请研究循环在R
中的工作方式Loans$From[i]
访问它我也不太确定:您是否希望原始 Dataframe 的每个条目都使用
by = "month"
?还是依赖于Loans
Dataframe 的Type
列?