Skip to content

Instantly share code, notes, and snippets.

@cigrainger
Created February 17, 2014 12:57
Show Gist options
  • Save cigrainger/9050056 to your computer and use it in GitHub Desktop.
Save cigrainger/9050056 to your computer and use it in GitHub Desktop.
prep.comp <- function(x,y){
require(dplyr)
if (names(x)[1]!='Week'){
stop("The first column should be 'Week'. Check the data.")
}
countryname <- names(x)[2]
x[['Week']] <- as.character(x[['Week']])
x[['weekstart']] <- substr(x[['Week']],1,11)
x[['weekend']] <- substr(x[['Week']],13,24)
x[['weekstart']] <- as.Date(x[['weekstart']],format='%Y-%m-%d')
x[['weekend']] <- as.Date(x[['weekend']],format='%Y-%m-%d')
x[['yearstart']] <- substr(x[['weekstart']],1,4)
x[['monthstart']] <- substr(x[['weekstart']],6,7)
x[['daystart']] <- substr(x[['weekstart']],9,11)
x[['yearend']] <- substr(x[['weekend']],1,4)
x[['monthend']] <- substr(x[['weekend']],6,7)
x[['dayend']] <- substr(x[['weekend']],9,11)
year <- vector(mode='numeric',length=length(x[['yearstart']]))
year[x[['yearstart']] == x[['yearend']]] <- x[['yearstart']][x[['yearstart']] == x[['yearend']]]
year[x[['yearstart']] != x[['yearend']] & x[['daystart']] >= 28] <- x[['yearstart']][x[['yearstart']] != x[['yearend']] & x[['daystart']] >= 28]
year[x[['yearstart']] != x[['yearend']] & x[['daystart']] < 28] <- x[['yearend']][x[['yearstart']] != x[['yearend']] & x[['daystart']] < 28]
month <- vector(mode='numeric',length=length(x[['yearstart']]))
month[x[['monthstart']] == x[['monthend']]] <- x[['monthstart']][x[['monthstart']] == x[['monthend']]]
month[x[['monthstart']] != x[['monthend']] & x[['dayend']]>=4] <- x[['monthend']][x[['monthstart']] != x[['monthend']] & x[['dayend']]>=4]
month[x[['monthstart']] != x[['monthend']] & x[['dayend']]<4] <- x[['monthstart']][x[['monthstart']] != x[['monthend']] & x[['dayend']]<4]
x[['month']] <- as.character(month)
x[['year']] <- as.character(year)
monthyear <- vector(mode='character',length=length(x[['yearstart']]))
monthyear <- paste(x[['year']],x[['month']],'01',sep='-')
x[['month']] <- as.character(monthyear)
x[['year']] <- NULL
names(x)[2] <- 'value'
x <- select(x,month,value)
x <- summarise(group_by(x,month),value=mean(value))
country <- vector(mode='numeric',length=length(x[['month']]))
country <- rep_len(countryname,length(country))
country <- gsub("\\."," ",country)
country <- tolower(country)
x[['country.name']] <- country
# x[['country.name']] <- tolower(x[['countryname']])
x[['month']] <- as.Date(x[['month']],format='%Y-%m-%d')
word <- vector(mode='character',length=length(x[['month']]))
word <- rep_len(y,length(word))
x[['word']] <- word
return(x)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment