R/basics.R

Defines functions create_google_credentials_template pullClean plotTrends appReleaseData plotGeotrends

#' @export
create_google_credentials_template <- function(path = "~/Desktop/googlecred.json"){
  if(!file.exists(path)){
    cred_file <- jsonlite::toJSON(list(google_user = "google_user", google_pwd = "google_pwd")
                                  , auto_unbox = TRUE)
    cat(cred_file, file = path)
  }
}


#' @import taucharts
#' @import magrittr
#' @export
pullClean <- function(query = c("mobile banking", "online girokonto", "number26"), cred_path){
  cred <- jsonlite::fromJSON(cred_path)
  gtrendsR::gconnect(cred$google_user, cred$google_pwd)
  data(countries, package = "gtrendsR")
  trendsData <- gtrendsR::gtrends(query,
              start_date = as.Date("2015-01-01"), end_date = Sys.Date(), geo = "DE")
  # trendsData <- trendsData$trend
  trendsData$trend %<>% reshape2::melt(id.vars = c("start", "end"))
  trendsData$trend$start %<>% as.character %>% as.Date
  trendsData$trend$end %<>% as.character %>% as.Date
  # trendsData$trend$end <- NULL
  trendsData <- lapply(trendsData, data.table)
  return(trendsData)
}

#' @export
plotTrends <- function(trendsData, appReleases, annotations = TRUE,
                       yvals = "value", models = c("linear", "exponential")){
  a <- tauchart(trendsData, width = "800px", height = "300px") %>%
    tau_line("start", yvals, color = "variable") %>%
    tau_guide_x(tick_format="%b-%y", label = "Date", tick_period = "week") %>%
    tau_legend() %>%
    tau_trendline(models = models) %>% tau_guide_y(label = "Google Trends", max = 90, min = 0) %>%
    tau_color_economist()
  if(annotations){
    a <- a %>% tau_annotations(appReleases[, c("dim", "val", "text", "color")])
  }
  return(a)
}

# add in app releases...
#' @export
appReleaseData <- function(){
  appReleases <- read.delim(system.file("appReleases.tsv", package = "datascience"),
             header = FALSE, col.names = c("Release.Number", "date"))
  appReleases$dim <- "start"
  appReleases$val <- appReleases$date %>% as.character %>%
    as.Date(format = "%b %d, %Y") %>% taucharts:::asISO8601Time() %>% as.character()
  appReleases$text <- appReleases$Release.Number %>% as.character()
  appReleases$color <- "#222222"
  appReleases[!grepl("^[0-9].[0-9]$", appReleases$Release.Number),]$color <- "#999999" # filter major point releases
  appReleases[!grepl("^[2-9].[0-9]$", appReleases$Release.Number),]$text <- "" # filter major point releases
  appReleases$Feature.Release <- FALSE
  appReleases[nchar(appReleases$Release.Number %>% as.character) == 3,]$Feature.Release <- TRUE
  appReleases %<>% data.table()
  return(appReleases)
}


#' @export
plotGeotrends <- function(geoTrends, vars = NULL){
  geoTrends$Region <- "Altes Bundesgebiet"
  geoTrends[geoTrends$Unterregion %in% c("Brandenburg",
             "Mecklenburg-Vorpommern", "Sachsen", "Sachsen-Anhalt", "Thüringen"),]$Region <- "Neue Länder"
  geoTrends[geoTrends$Unterregion %in% c("Berlin",
             "Bremen","Hamburg"),]$Region <- "Stadtstaaten"
  geoTrends %<>% reshape2::melt(id.vars = c("Unterregion", "Region"))
  geoTrends <- geoTrends[geoTrends$Unterregion != "Schaffhausen", ]
  geoTrends[geoTrends$Unterregion == "Mecklenburg-Vorpommern",]$Unterregion <- "Mecklenburg-Vor."
  geoTrends[geoTrends$Unterregion == "Nordrhein-Westfalen",]$Unterregion <- "NRW"
  geoTrends$Bundesland <- geoTrends$Unterregion
  geoTrends$value %<>% as.numeric
  geoTrends <- data.table(geoTrends)[, .(value = median(value)), by = .(Region, variable)]
  geoTrends[, variable := factor(variable, levels = c("comdirect", "number26", "consorsbank")
                               , labels = c("comdirect", "NUMBER26", "Consorsbank"), ordered = TRUE)]

  if(!is.null(vars)){
    geoTrends <- geoTrends[geoTrends$variable %in% vars,]
  }

  tauchart(geoTrends, width = "800px", height = "300px") %>%
    tau_bar("Region", "value", color = "variable") %>%
    tau_color_economist() %>% tau_legend() %>% tau_guide_y(label = "Google Trends Rank")# %>%
}

#' @export
getCompetitorData <- function(){
  competitordata <- fread(system.file("number26competitordata.csv", package = "datascience"))
  return(competitordata)
}

#' @export
buildNumber26Report <- function(google_cred_path = "~/Desktop/googlecred.json"){
 rmarkdown::render(system.file("number26.Rmd", package = "datascience"), output_dir = "~/Desktop", params = list(google_cred_path = google_cred_path))
}
jlewis91/datascience documentation built on May 19, 2019, 12:46 p.m.