aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/load_cf.R24
1 files changed, 14 insertions, 10 deletions
diff --git a/R/load_cf.R b/R/load_cf.R
index 118493ee..3395852f 100644
--- a/R/load_cf.R
+++ b/R/load_cf.R
@@ -92,6 +92,7 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){
file.copy(zip, tmp)
zip <- tmp
for(dealname in indextodealnames[[k]]){
+ cat("processing", dealname, "\n")
dealdata <- getdealdata(dealname, tradedate)
alldates <- getdealschedule(dealdata, "1 month")
config <- getconfig(dealname, tradedate)
@@ -123,8 +124,8 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){
paste0("Scen", i), sep="-"), ".txt")
conn <- unz(zip, filename)
data <- tryCatch(read_tsv(conn, col_types= ct),
- error=function(e){
- message(conditionMessage(e))
+ warning=function(w){
+ message(conditionMessage(w))
NULL})
if(is.null(data)||nrow(data)<2){
cat(dealname, i, tranche, "\n")
@@ -137,7 +138,7 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){
data[,`:=`(Cashflow = sanitize.column(Cashflow),
Principal = sanitize.column(Principal))]
}, warning=function(w){
- message("handling warning: ", conditionMessage(w))
+ message(conditionMessage(w))
NULL})
r[i,] <- as.numeric(df[data, roll=TRUE][,list(sum(Cashflow*Discounts),
sum(Principal*Discounts),
@@ -186,6 +187,7 @@ getcusipcf <- function(params, cfdata, dist, tradedate=Sys.Date()){
fields <- c("Cashflow", "Principal", "Interest", "wal", "duration")
for(i in 1:length(cusips)){
cusip <- cusips[i]
+ cat("processing", cusip, "\n")
zip <- params$zipfiles[params$cusips[[cusip]]]
dealname <- dealnames[i]
dealdata <- getdealdata(dealname, tradedate)
@@ -205,19 +207,21 @@ getcusipcf <- function(params, cfdata, dist, tradedate=Sys.Date()){
for(j in 1:n.scenarios){
filename <- sprintf("%s-CF-Scen%s.txt", cusip, j)
conn <- unz(zip, filename)
- data <- read_tsv(conn, col_types=list(col_date("%b %d, %Y"),
- col_numeric(),
- col_numeric(),
- col_numeric(), col_numeric(), col_numeric(),
- col_skip(), col_skip()))
- if(nrow(data)<=2){
+ data <- tryCatch(read_tsv(conn, col_types=list(col_date("%b %d, %Y"),
+ col_numeric(),
+ col_numeric(),
+ col_numeric(), col_numeric(), col_numeric(),
+ col_skip(), col_skip())),
+ warning=function(w){
+ message(conditionMessage(w))
+ NULL})
+ if(is.null(data)||nrow(data)<=2){
cat(cusip, "Scenario", j, "\n")
flag <- FALSE
break
}
data <- data[-c(1,2),]
data <- data.table(data, key="Date")
- ##need col_datetime is POSIXct, we want type Date
data[,Balance:=pmax(Balance-`Accum Interest Shortfall`, 0)]
r[j,] <- as.numeric(df[data, roll=TRUE][,list(Cashflow=temp <- sum(Cashflow*Discounts),
Principal=sum(Principal*Discounts),