Works outside but not inside!
Folks, The following function works like a charm!
#Amortization for multiple rows
createAmorts<-function(ams, numPer, term) {
fctrs<-rep(1:term, each = numPer)
oneRow<-function(am, fac){
tdf<-data.frame(ams = c(am), yrs=fac)
agg<-aggregate(ams ~ yrs, data = tdf, sum)
agg$ams<-1-cumsum(agg$ams)
agg
}
data.frame(id = rep(1:nrow(ams), each = term),
do.call(rbind, apply(ams, 1, oneRow, fctrs)))
}
But when I run the function inside some other code:
retrieveSSdata<-function(inputPath) {
iList<-list()
theWb<-loadWorkbook(inputPath)
# Set up the amorts using inputs and term and frequency
theTerm<-readNamedRegion(theWb, "Term", useCachedValues = TRUE, header = FALSE)
theFreq<-readNamedRegion(theWb, "freq", useCachedValues = TRUE, header = FALSE)
allAmorts<-readNamedRegion(theWb, "allAmorts", useCachedValues = TRUE, header = FALSE)
theAmorts<-createAmorts(allAmorts, 12/theFreq, theTerm*theFreq)
iList[["amort"]]<-theAmorts iList[["PremAttach"]]<-readNamedRegion(theWb, "amPremAttach", useCachedValues = TRUE) # iList }
Note that in the above code everything seems to work fine except for the ?createAmorts" code.
I have the following packages loaded: require(XLConnect) require(plyr) require(sm) require(fOptions) require(fCopulae) I have spent a lot of time on this to no avail. Any help would be appreciated. Best, KW