diff options
| -rw-r--r-- | R/load_cf.R | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index 1e4b1b6b..652a4b94 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -119,13 +119,14 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){ data <- data.table(data)
if("Error" %in% names(data)){
k(NULL)
- }
+ }
## data <- fread(file.path(root.dir, "Scenarios", paste0("Prices_", tradedate), filename),
## sep="\t", colClasses="character")
- data <- data[-c(1,2),]
- data[,Date:=as.Date(Date, "%b %d, %Y")]
- data <- data.table(Date=data[,Date],
- data[,lapply(.SD, sanitize.column),.SDcols=2:4],key="Date")
+ data <- data[-c(1,2),][,`:=`(Date=as.Date(Date, "%b %d, %Y"),
+ Cashflow = sanitize.column(Cashflow),
+ Principal = sanitize.column(Principal),
+ Interest = sanitize.column(Interest))]
+ setkey(data, "Date")
r[i,] <- as.numeric(df[data, roll=TRUE][,list(sum(Cashflow*Discounts),
sum(Principal*Discounts),
sum(Interest*Discounts))])
@@ -196,9 +197,14 @@ getcusipcf <- function(params, cfdata, dist, tradedate=Sys.Date()){ if("Error" %in% names(data)){
k(NULL)
}
- data <- data[,Date:=as.Date(Date, "%b %d, %Y")]
- data <- data.table(Date=data[,Date],data[,lapply(.SD,sanitize.column),.SDcols=2:6],key="Date")
- data[,Balance:=max(Balance-`Accum Interest Shortfall`, 0), by=.EACHI]
+ data[,`:=`(Date=as.Date(Date, "%b %d, %Y"),
+ Cashflow=sanitize.column(Cashflow),
+ Principal=sanitize.column(Principal),
+ Interest=sanitize.column(Interest),
+ Balance=sanitize.column(Balance),
+ `Accum Interest Shortfall`=sanitize.column(`Accum Interest Shortfall`))]
+ data[,Balance:=pmax(Balance-`Accum Interest Shortfall`, 0)]
+ setkey(data, "Date")
r[j,] <- as.numeric(df[data, roll=TRUE][,list(Cashflow=temp <- sum(Cashflow*Discounts),
Principal=sum(Principal*Discounts),
Interest=sum(Interest*Discounts),
|
