---
output: html_document
runtime: shiny
---
# Tendencias en México
```{r setup, echo=FALSE, include = FALSE}
knitr::opts_chunk$set(echo = TRUE)
pacman::p_load(
tidyverse,
gtrendsR,
shiny,
sf,
leaflet,
plotly,
magrittr,
mapview,
plainview,
leafsync,
htmltools
)
getwd()
statesJSON <- st_read("../input/mx-states.geo.json")
```
```{r, echo=FALSE}
inputPanel(
textInput(
inputId="keyword",
value="Uber Eats,Didi Food,Rappi",
label="Keyword:",
placeholder="Bitcoin"
),
shiny::tags$style(
type="text/css",
".shiny-flow-layout div {width: 100%; display: flex; justify-content: center; align-items: center;} .shiny-input-container {display: flex; flex-direction: column; justify-content: center; align-items: center;} #keyword { }"
)
)
keyword <- reactive({
unlist(str_split(input$keyword,","))
}) %>% debounce(500)
trends <- reactive({
trends <- gtrends(
keyword=keyword(),
geo="MX",
tz="America/Mexico_City",
time="now 7-d"
)
trendsOriginal <- trends
trends <- trends$interest_by_region
trends$name <- trends$location
trends %>%
mutate(
name=case_when(
name=="Mexico City" ~ "Ciudad De Mexico",
name=="State of Mexico" ~ "Estado De Mexico",
name=="Querétaro" ~ "Queretaro",
name=="Michoacán" ~ "Michoacan",
TRUE ~ name
)
)
})
states <- reactive({
statesJSON %>% left_join(trends(),by="name")
})
colors <- reactive({
colorNumeric(
palette="RdYlBu",
domain=states()$hits,
reverse=TRUE
)
})
renderUI({
tagList(
lapply(keyword(),function(x){
data <- states() %>% filter(keyword == x)
leaflet(data) %>%
addTiles() %>%
setView(
lng=-102.5528,
lat=23.6345,
zoom=4
) %>%
addPolygons(
weight=1,
color="#000000",
opacity=0.8,
fillOpacity=0.8,
fillColor=colors()(data$hits)
) %>%
addLegend(
position="bottomleft",
pal=colors(),
values=data$hits,
title="Hits"
)
})
)
})
renderPlotly({
trends() %>%
group_by(keyword) %>%
do(
p=plot_ly(.,
x=~reorder(name,hits),
y=~hits,
type="scatter",
mode="lines",
height=800
) %>%
style(showlegend=FALSE)
) %>%
subplot(
nrows=length(keyword()),
margin = 0.1
)
})
renderTable({
trends() %>%
select(keyword,hits,name)
},
striped=TRUE,
hover=TRUE,
bordered=TRUE,
width="100%"
)
```
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎