diff options
Diffstat (limited to 'R')
| -rw-r--r-- | R/load_cf.R | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index 5ec0d788..96234e7a 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -52,8 +52,10 @@ for(dealname in dealnames){ for(i in 1:n.scenarios){
filename <- paste0(paste(toupper(dealname), tranche, "CF", paste0("Scen", i), sep="-"), ".txt")
data <- read.table(file.path(root.dir, "Scenarios", paste0("Prices_", workdate), filename),
- sep="\t", header=T)
- data <- data[-(1:2),1:4]
+ sep="\t", header=T, skip =3, colClasses="character", comment.char="")
+ colnames(data) <- c("Date", "Cashflow", "Principal", "Interest")
+ data <- data[,1:4]
+ colnames(data) <- c("Date", "Cashflow", "Principal", "Interest")
data$Date <- as.Date(data$Date, "%b %d, %Y")
if(any(is.na(data$Date))){
sprintf("file: %s is messed up", filename)
@@ -61,11 +63,13 @@ for(dealname in dealnames){ break
}
data <- data[data$Date >= Sys.Date(),]
- DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
+ if(i==1){
+ DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
+ }
pv <- c()
for(field in fields){
data[,field] <- sanitize.column(data[,field])
- pv <- c(pv, crossprod(DC$discounts, data[,field]))
+ pv <- c(pv, crossprod(DC$discounts[1:length(data$Date)], data[,field]))
}
r[i,] <- pv
}
@@ -102,8 +106,9 @@ for(cusip in cusips){ next
}
data <- read.table(file.path(root.dir, "Scenarios", paste0("Prices_", workdate), filename),
- sep = "\t", header=T)
- data <- data[-(1:2), 1:4]
+ sep = "\t", header=T, colClasses="character", skip = 3, comment.char="")
+ data <- data[, 1:4]
+ colnames(data) <- c("Date", "Cashflow", "Principal", "Interest")
data$Date <- as.Date(data$Date, "%b %d, %Y")
if(any(is.na(data$Date))){
sprintf("file: %s is messed up", filename)
@@ -111,11 +116,13 @@ for(cusip in cusips){ break
}
data <- data[data$Date >= Sys.Date(),]
- DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
+ if(i==1){
+ DC <- DiscountCurve(L3m$params, L3m$tsQuotes, yearFrac(L3m$params$tradeDate, data$Date))
+ }
pv <- c()
for(field in fields){
data[,field] <- sanitize.column(data[,field])
- pv <- c(pv, crossprod(DC$discounts, data[,field]))
+ pv <- c(pv, crossprod(DC$discounts[1:length(data$Date), data[,field]))
}
r[i,] <- pv
}
|
