aboutsummaryrefslogtreecommitdiffstats
path: root/R
diff options
context:
space:
mode:
Diffstat (limited to 'R')
-rw-r--r--R/load_cf.R9
1 files changed, 7 insertions, 2 deletions
diff --git a/R/load_cf.R b/R/load_cf.R
index 5cb5fc12..5e1819b8 100644
--- a/R/load_cf.R
+++ b/R/load_cf.R
@@ -162,7 +162,8 @@ getcusipcf <- function(cusips, cfdata, dist, workdate=Sys.Date()){
cusipdata <- list()
dealnames <- dealnamefromcusip(cusips)
n.scenarios <- 100
- intexfields <- c("Cashflow", "Principal", "Interest", "Balance")
+ intexfields <- c("Cashflow", "Principal", "Interest", "Balance",
+ "Accum Interest Shortfall")
fields <- c("Cashflow", "Principal", "Interest")
for(i in 1:length(cusips)){
cusip <- cusips[i]
@@ -181,7 +182,7 @@ getcusipcf <- function(cusips, cfdata, dist, workdate=Sys.Date()){
}
data <- read.table(file.path(root.dir, "Scenarios", paste0("Prices_", workdate), filename),
sep = "\t", header=F, colClasses="character", skip = 3, comment.char="")
- data <- data[, 1:5]
+ data <- data[, 1:6]
colnames(data) <- c("Date", intexfields)
data$Date <- as.Date(data$Date, "%b %d, %Y")
if(any(is.na(data$Date))){
@@ -221,6 +222,10 @@ getcusipcf <- function(cusips, cfdata, dist, workdate=Sys.Date()){
}else{
data[,"Balance" ] <- tryCatch(sanitize.column(data[,"Balance"]),
warning = function(w){cat("garbled", dealname, i)})
+ data[,"Accum Interest Shortfall"] <-
+ tryCatch(sanitize.column(data[,"Accum Interest Shortfall"]),
+ warning = function(w){cat("garbled", dealname, i)})
+ data[,"Balance"] <- pmax(data[,"Balance"]-data[,"Accum Interest Shortfall"], 0)
wal <- crossprod(yearFrac(workdate, data$Date)[-1], -diff(data[,"Balance"]))/
indicdata$curr_balance
if(pv[1] == 0){