Skip to content

Instantly share code, notes, and snippets.

@cigrainger
Created December 3, 2013 21:59
Show Gist options
  • Save cigrainger/7778183 to your computer and use it in GitHub Desktop.
Save cigrainger/7778183 to your computer and use it in GitHub Desktop.
quarterCalc <- function(interviewTime, interviewState, priceData){
if(!inherits(interviewTime, "yearmon")){
stop("Wrong date type")
}
newData <- subset(priceData, as.character(priceData$statename)==as.character(interviewState))
if(dim(subset(priceData, time==interviewTime & as.character(statename)==as.character(interviewState)))[1] > 1){return(NA)}
index = which(newData$time == interviewTime, arr.ind=TRUE)
if(length(index)>1){ stop(print(index))}
else if(index>=3){
quarterly <- data.frame("time" = interviewTime, "state" = interviewState, "price" = mean(newData$nprc[seq((index-3), (index-1), 1)], na.rm=TRUE))
}else{
warning("Missing data. There are less than three prior months")
return(NA)
}
return(quarterly$price[1])
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment