#' @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))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.