diff options
| -rw-r--r-- | R/load_cf.R | 9 |
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){
|
