Lookups in R: The REAL Right Way!
After waiting forever enough to get things to run, I stepped into a better way to do lookups.
mapply on matrix objects.
Basically, I do this:
TSkimLBWPk<-read.dbf("data/TSPKLBW.DBF") #Read the local bus walk skim
TSKimLBWPK_IWAIT=(acast(TSkimLBWPk,I~J,value.var="V1",drop=FALSE,fill=0)) #build a matrix from the data
if(i<=nrow(TSKimLBWPK_IWAIT) && j<=ncol(TSKimLBWPK_IWAIT))
} #build a function to lookup, returning 0 if it is looking for a zone not found
TripsAllPk$LBW.IWAIT=mapply(TSKimLBWPK.IWAIT,TripsAllPk$PTAZ,TripsAllPk$ATAZ) #do the lookup
That's it. This takes the input DBF (which has I, J, V1, V2, etc. fields), converts to a matrix for a quick lookup, and then applies it.
It runs in about 3 minutes.