Skip to content

Instantly share code, notes, and snippets.

@corynissen
Last active August 29, 2015 14:15
Show Gist options
  • Save corynissen/f75ecae388f81be13436 to your computer and use it in GitHub Desktop.
Save corynissen/f75ecae388f81be13436 to your computer and use it in GitHub Desktop.
SO question 28423302
library(shiny)
library(ggvis)
Visitas_Por_Fuente <- structure(list(date = structure(1:31, .Label = c("2014-12-01",
"2014-12-02", "2014-12-03", "2014-12-04", "2014-12-05", "2014-12-06",
"2014-12-07", "2014-12-08", "2014-12-09", "2014-12-10", "2014-12-11",
"2014-12-12", "2014-12-13", "2014-12-14", "2014-12-15", "2014-12-16",
"2014-12-17", "2014-12-18", "2014-12-19", "2014-12-20", "2014-12-21",
"2014-12-22", "2014-12-23", "2014-12-24", "2014-12-25", "2014-12-26",
"2014-12-27", "2014-12-28", "2014-12-29", "2014-12-30", "2014-12-31"
), class = "factor"), sessions = c(1932L, 1828L, 2349L, 8192L,
3188L, 3277L, 2846L, 2541L, 5434L, 4290L, 2059L, 2080L, 2111L,
3776L, 1989L, 1844L, 3641L, 1283L, 1362L, 1568L, 2882L, 1212L,
957L, 851L, 928L, 1435L, 1115L, 1471L, 1128L, 1022L, 768L), id = 1:31), .Names = c("date",
"sessions", "id"), row.names = c(NA, -31L), drop = TRUE, class = c("tbl_df",
"tbl", "data.frame"))
labelsF = c("Directo", "Email", "Referencias", "SEO", "Social Media", "Campañas", "Adwords")
Visitas_Por_Fuente$date <- as.Date(Visitas_Por_Fuente$date)
#ComentariosDic <- read.csv("D:\\RCoursera\\Star-App-2\\ComentariosDic2014.csv",header = TRUE, sep = ";")
#ComentariosDic$date <- as.Date(ComentariosDic$date)
shinyServer(function(input, output){
# Filter the data based on user selection month
data <- reactive({
subset(Visitas_Por_Fuente, date >= as.character(input$dates[1]) &
date <= as.character(input$dates[2]))
})
mysessions <- function(x) {
if(is.null(x)) return(NULL)
#notice below the id column is how ggvis can understand which session to show
EvolucionVisitas <- data()
row <- EvolucionVisitas[EvolucionVisitas$id == x$id, ]
#prettyNum shows the number with thousand-comma separator
paste0("Sessions:", "&nbsp;",prettyNum(row$sessions, big.mark=",",scientific=F))
}
x_axis <- reactive({
df <- data()
c(as.character(df$date[1]),
as.character(df$date[round(length(df$date)/2,0)]),
as.character(tail(df$date, n=1)))
})
data %>%
ggvis(x= ~date, y= ~sessions, key := ~id) %>%
layer_points() %>%
add_tooltip(mysessions ,"hover") %>%
layer_paths() %>%
#add_axis("x", value=x_axis) %>%
#add_axis("x",
#value=c(as.character(data()$date[1]),as.character(data()$date[round(length(data()$date)/2,0)]),
# as.character(tail(data()$date, n=1)))) %>%
bind_shiny("EvolucionVisitas")
})
library(shiny)
library(ggvis)
# Define the overall UI
shinyUI(
# Use a fluid Bootstrap layout
fluidPage(
# Give the page a title
br(),
br(),
titlePanel("Visitas por fuente"),
# Generate a row with a sidebar
sidebarLayout(
# Define the sidebar with one input
sidebarPanel(
dateRangeInput("dates", label = h3("Date range"),
start = "2014-12-01", end = "2014-12-31")
),
mainPanel(
tabsetPanel(
#tabPanel('Visitas por fuente',
# plotOutput("VisitasFuente")),
tabPanel('Evolución de las visitas',
ggvisOutput("EvolucionVisitas"))
#tabPanel('Comentarios',
# dataTableOutput("Comentarios"))
)
)
)
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment