1. This code gathers Google search result data for “tobacco” and organizes it by region. It also gathers Census data in order
tobacco <- trendy("tobacco", geo = "US", from = "2019-01-01", to = "2020-01-01")

tob_states <- tobacco %>%
  get_interest_region()

states_leaflet <- get_acs(geography = "state",       
                  variables = "B19013_001",         
                  geometry = TRUE)                   
                  shift_geo = T         

This code reads combines the Google tobacco data and CDC data on smoking.

smoking <- read_csv("Cig_smoking_percent.csv")

tob_data <- tob_states %>% 
  mutate(State = state2abbr(location)) %>% 
  inner_join(smoking)

This code maps the combined Google search and CDC data.


tob_colors <- colorNumeric(palette = "viridis", domain = tob_data$Cig_percent)

states_leaflet %>% 
  rename(location = NAME) %>% 
  inner_join(tob_data) %>% 
  leaflet() %>% 
  addTiles() %>%
  addPolygons(weight = 1,
              fillColor = ~tob_colors(Cig_percent), 
              label = ~paste0(location, ", Percent of Smokers = ", Cig_percent),
              highlight = highlightOptions(weight = 2)) %>% 
  setView(-95, 40, zoom = 4) %>% 
  addLegend(pal = tob_colors, values = ~Cig_percent)
Joining, by = "location"
sf layer has inconsistent datum (+proj=longlat +datum=NAD83 +no_defs).
Need '+proj=longlat +datum=WGS84'
  1. This code gets the Google search result data for “cigarettes” and organizes it by region. It also gathers Census data so the google data is able to be mapped.
cigarettes <- trendy("cigarettes", geo = "US", from = "2019-01-01", to = "2020-01-01")

cig_states <- cigarettes %>%
  get_interest_region()

states_leaflet <- get_acs(geography = "state",       
                  variables = "B19013_001",         
                  geometry = TRUE)                   
                  shift_geo = T                    

This code maps the Google data from above by hits so you can see which states search “cigarettes” the most.

cig_colors <- colorNumeric(palette = "viridis", domain = cig_states$hits)

states_leaflet %>% 
  rename(location = NAME) %>% 
  inner_join(cig_states) %>% 
  leaflet() %>% 
  addTiles() %>%
  addPolygons(weight = 1,  fillColor = ~cig_colors(hits), label = ~paste0(location, ", Search volume = ", hits), highlight = highlightOptions(weight = 2)) %>% 
  setView(-95, 40, zoom = 4) %>% 
  addLegend(pal = cig_colors, values = ~hits)
Joining, by = "location"
sf layer has inconsistent datum (+proj=longlat +datum=NAD83 +no_defs).
Need '+proj=longlat +datum=WGS84'
  1. This code joins the Google search data from above and joins it to CDC data on smoking.
smoking <- read_csv("Cig_smoking_percent.csv")

cig_data <- cig_states %>% 
  mutate(State = state2abbr(location)) %>% 
  inner_join(smoking)

This code creates a model between the CDC smoking data and the cigarette data.

cig_model <- lm(Cig_percent ~ hits, data = cig_data)

glance(cig_model)
tidy(cig_model)

This code creates a scatter plot of the CDC and Google search data so that you can see the relationship between them.

cig_data %>% 
  drop_na() %>% 
  plot_ly(x = ~hits, 
          y = ~Cig_percent,
          hoverinfo = "text", 
          text = ~paste("State: ", location, "<br>", "'Cigarettes' search rate: ", hits, "<br>", "Percent of smokers: ", Cig_percent)) %>% 
  add_markers(showlegend = F) %>% 
  add_lines(y = ~fitted(cig_model)) %>% 
  layout(title = "Relationship Between Google Searches for 'cigarettes' and Percent of Smokers, by State",
   xaxis = list(title = "Google search volume for 'cigarettes'"),
   yaxis = list(title = "State Percent of Smokers, per capita"))
  1. This code gathers Google search results for “vaping”, organizes it by region, and gathers Census data so it can be mapped.
vaping <- trendy("vaping", geo = "US", from = "2019-01-01", to = "2020-01-01")

vape_states <- vaping %>%
  get_interest_region()

states_leaflet <- get_acs(geography = "state",       
                  variables = "B19013_001",         
                  geometry = TRUE)                   
                  shift_geo = T                    

This code maps the Google data from above by hits so you can see which states search “vaping” the most.


vape_colors <- colorNumeric(palette = "viridis", domain = vape_states$hits)

states_leaflet %>% 
  rename(location = NAME) %>% 
  inner_join(vape_states) %>% 
  leaflet() %>% 
  addTiles() %>%
  addPolygons(weight = 1,  fillColor = ~vape_colors(hits), label = ~paste0(location, ", Search volume = ", hits), highlight = highlightOptions(weight = 2)) %>% 
  setView(-95, 40, zoom = 4) %>% 
  addLegend(pal = vape_colors, values = ~hits)
Joining, by = "location"
sf layer has inconsistent datum (+proj=longlat +datum=NAD83 +no_defs).
Need '+proj=longlat +datum=WGS84'
  1. Do the linear model and plotly graph between your second term and the CDC data.
smoking <- read_csv("Cig_smoking_percent.csv")

vape_data <- vape_states %>% 
  mutate(State = state2abbr(location)) %>% 
  inner_join(smoking)

This code creates a model between the CDC smoking data and the vaping data.

vape_model <- lm(Cig_percent ~ hits, data = vape_data)

glance(cig_model)
tidy(cig_model)

This code creates a scatter plot of the CDC and Google search data so that you can see the relationship between them.

vape_data %>% 
  drop_na() %>% 
  plot_ly(x = ~hits, 
          y = ~Cig_percent,
          hoverinfo = "text", 
          text = ~paste("State: ", location, "<br>", "Vaping' search rate: ", hits, "<br>", "Percent of smokers: ", Cig_percent)) %>% 
  add_markers(showlegend = F) %>% 
  add_lines(y = ~fitted(vape_model)) %>% 
  layout(title = "Relationship Between Google Searches for 'vaping' and Percent of Smokers, by State",
   xaxis = list(title = "Google search volume for 'vaping'"),
   yaxis = list(title = "State Percent of Smokers, per capita"))
LS0tDQp0aXRsZTogIlNtb2tpbmcgQ2hvcm9wbGV0aHMiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoxLiBUaGlzIGNvZGUgZ2F0aGVycyBHb29nbGUgc2VhcmNoIHJlc3VsdCBkYXRhIGZvciAidG9iYWNjbyIgYW5kIG9yZ2FuaXplcyBpdCBieSByZWdpb24uIEl0IGFsc28gZ2F0aGVycyBDZW5zdXMgZGF0YSBpbiBvcmRlciANCg0KYGBge3J9DQp0b2JhY2NvIDwtIHRyZW5keSgidG9iYWNjbyIsIGdlbyA9ICJVUyIsIGZyb20gPSAiMjAxOS0wMS0wMSIsIHRvID0gIjIwMjAtMDEtMDEiKQ0KDQp0b2Jfc3RhdGVzIDwtIHRvYmFjY28gJT4lDQogIGdldF9pbnRlcmVzdF9yZWdpb24oKQ0KDQpzdGF0ZXNfbGVhZmxldCA8LSBnZXRfYWNzKGdlb2dyYXBoeSA9ICJzdGF0ZSIsICAgICAgIA0KICAgICAgICAgICAgICAgICAgdmFyaWFibGVzID0gIkIxOTAxM18wMDEiLCAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBUUlVFKSAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIHNoaWZ0X2dlbyA9IFQgICAgICAgICANCmBgYA0KDQpUaGlzIGNvZGUgcmVhZHMgY29tYmluZXMgdGhlIEdvb2dsZSB0b2JhY2NvIGRhdGEgYW5kIENEQyBkYXRhIG9uIHNtb2tpbmcuIA0KDQpgYGB7cn0NCnNtb2tpbmcgPC0gcmVhZF9jc3YoIkNpZ19zbW9raW5nX3BlcmNlbnQuY3N2IikNCg0KdG9iX2RhdGEgPC0gdG9iX3N0YXRlcyAlPiUgDQogIG11dGF0ZShTdGF0ZSA9IHN0YXRlMmFiYnIobG9jYXRpb24pKSAlPiUgDQogIGlubmVyX2pvaW4oc21va2luZykNCmBgYA0KDQpUaGlzIGNvZGUgbWFwcyB0aGUgY29tYmluZWQgR29vZ2xlIHNlYXJjaCBhbmQgQ0RDIGRhdGEuIA0KDQpgYGB7cn0NCg0KdG9iX2NvbG9ycyA8LSBjb2xvck51bWVyaWMocGFsZXR0ZSA9ICJ2aXJpZGlzIiwgZG9tYWluID0gdG9iX2RhdGEkQ2lnX3BlcmNlbnQpDQoNCnN0YXRlc19sZWFmbGV0ICU+JSANCiAgcmVuYW1lKGxvY2F0aW9uID0gTkFNRSkgJT4lIA0KICBpbm5lcl9qb2luKHRvYl9kYXRhKSAlPiUgDQogIGxlYWZsZXQoKSAlPiUgDQogIGFkZFRpbGVzKCkgJT4lDQogIGFkZFBvbHlnb25zKHdlaWdodCA9IDEsDQogICAgICAgICAgICAgIGZpbGxDb2xvciA9IH50b2JfY29sb3JzKENpZ19wZXJjZW50KSwgDQogICAgICAgICAgICAgIGxhYmVsID0gfnBhc3RlMChsb2NhdGlvbiwgIiwgUGVyY2VudCBvZiBTbW9rZXJzID0gIiwgQ2lnX3BlcmNlbnQpLA0KICAgICAgICAgICAgICBoaWdobGlnaHQgPSBoaWdobGlnaHRPcHRpb25zKHdlaWdodCA9IDIpKSAlPiUgDQogIHNldFZpZXcoLTk1LCA0MCwgem9vbSA9IDQpICU+JSANCiAgYWRkTGVnZW5kKHBhbCA9IHRvYl9jb2xvcnMsIHZhbHVlcyA9IH5DaWdfcGVyY2VudCkNCmBgYA0KDQoyLiBUaGlzIGNvZGUgZ2V0cyB0aGUgR29vZ2xlIHNlYXJjaCByZXN1bHQgZGF0YSBmb3IgImNpZ2FyZXR0ZXMiIGFuZCBvcmdhbml6ZXMgaXQgYnkgcmVnaW9uLiBJdCBhbHNvIGdhdGhlcnMgQ2Vuc3VzIGRhdGEgc28gdGhlIGdvb2dsZSBkYXRhIGlzIGFibGUgdG8gYmUgbWFwcGVkLiANCg0KYGBge3J9DQpjaWdhcmV0dGVzIDwtIHRyZW5keSgiY2lnYXJldHRlcyIsIGdlbyA9ICJVUyIsIGZyb20gPSAiMjAxOS0wMS0wMSIsIHRvID0gIjIwMjAtMDEtMDEiKQ0KDQpjaWdfc3RhdGVzIDwtIGNpZ2FyZXR0ZXMgJT4lDQogIGdldF9pbnRlcmVzdF9yZWdpb24oKQ0KDQpzdGF0ZXNfbGVhZmxldCA8LSBnZXRfYWNzKGdlb2dyYXBoeSA9ICJzdGF0ZSIsICAgICAgIA0KICAgICAgICAgICAgICAgICAgdmFyaWFibGVzID0gIkIxOTAxM18wMDEiLCAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBUUlVFKSAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIHNoaWZ0X2dlbyA9IFQgICAgICAgICAgICAgICAgICAgIA0KYGBgDQoNClRoaXMgY29kZSBtYXBzIHRoZSBHb29nbGUgZGF0YSBmcm9tIGFib3ZlIGJ5IGhpdHMgc28geW91IGNhbiBzZWUgd2hpY2ggc3RhdGVzIHNlYXJjaCAiY2lnYXJldHRlcyIgdGhlIG1vc3QuIA0KDQpgYGB7cn0NCmNpZ19jb2xvcnMgPC0gY29sb3JOdW1lcmljKHBhbGV0dGUgPSAidmlyaWRpcyIsIGRvbWFpbiA9IGNpZ19zdGF0ZXMkaGl0cykNCg0Kc3RhdGVzX2xlYWZsZXQgJT4lIA0KICByZW5hbWUobG9jYXRpb24gPSBOQU1FKSAlPiUgDQogIGlubmVyX2pvaW4oY2lnX3N0YXRlcykgJT4lIA0KICBsZWFmbGV0KCkgJT4lIA0KICBhZGRUaWxlcygpICU+JQ0KICBhZGRQb2x5Z29ucyh3ZWlnaHQgPSAxLCAgZmlsbENvbG9yID0gfmNpZ19jb2xvcnMoaGl0cyksIGxhYmVsID0gfnBhc3RlMChsb2NhdGlvbiwgIiwgU2VhcmNoIHZvbHVtZSA9ICIsIGhpdHMpLCBoaWdobGlnaHQgPSBoaWdobGlnaHRPcHRpb25zKHdlaWdodCA9IDIpKSAlPiUgDQogIHNldFZpZXcoLTk1LCA0MCwgem9vbSA9IDQpICU+JSANCiAgYWRkTGVnZW5kKHBhbCA9IGNpZ19jb2xvcnMsIHZhbHVlcyA9IH5oaXRzKQ0KYGBgDQoNCjMuIFRoaXMgY29kZSBqb2lucyB0aGUgR29vZ2xlIHNlYXJjaCBkYXRhIGZyb20gYWJvdmUgYW5kIGpvaW5zIGl0IHRvIENEQyBkYXRhIG9uIHNtb2tpbmcuIA0KYGBge3J9DQpzbW9raW5nIDwtIHJlYWRfY3N2KCJDaWdfc21va2luZ19wZXJjZW50LmNzdiIpDQoNCmNpZ19kYXRhIDwtIGNpZ19zdGF0ZXMgJT4lIA0KICBtdXRhdGUoU3RhdGUgPSBzdGF0ZTJhYmJyKGxvY2F0aW9uKSkgJT4lIA0KICBpbm5lcl9qb2luKHNtb2tpbmcpDQpgYGANCg0KVGhpcyBjb2RlIGNyZWF0ZXMgYSBtb2RlbCBiZXR3ZWVuIHRoZSBDREMgc21va2luZyBkYXRhIGFuZCB0aGUgY2lnYXJldHRlIGRhdGEuIA0KDQpgYGB7cn0NCmNpZ19tb2RlbCA8LSBsbShDaWdfcGVyY2VudCB+IGhpdHMsIGRhdGEgPSBjaWdfZGF0YSkNCg0KZ2xhbmNlKGNpZ19tb2RlbCkNCnRpZHkoY2lnX21vZGVsKQ0KYGBgDQoNClRoaXMgY29kZSBjcmVhdGVzIGEgc2NhdHRlciBwbG90IG9mIHRoZSBDREMgYW5kIEdvb2dsZSBzZWFyY2ggZGF0YSBzbyB0aGF0IHlvdSBjYW4gc2VlIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVtLiANCg0KYGBge3J9DQpjaWdfZGF0YSAlPiUgDQogIGRyb3BfbmEoKSAlPiUgDQogIHBsb3RfbHkoeCA9IH5oaXRzLCANCiAgICAgICAgICB5ID0gfkNpZ19wZXJjZW50LA0KICAgICAgICAgIGhvdmVyaW5mbyA9ICJ0ZXh0IiwgDQogICAgICAgICAgdGV4dCA9IH5wYXN0ZSgiU3RhdGU6ICIsIGxvY2F0aW9uLCAiPGJyPiIsICInQ2lnYXJldHRlcycgc2VhcmNoIHJhdGU6ICIsIGhpdHMsICI8YnI+IiwgIlBlcmNlbnQgb2Ygc21va2VyczogIiwgQ2lnX3BlcmNlbnQpKSAlPiUgDQogIGFkZF9tYXJrZXJzKHNob3dsZWdlbmQgPSBGKSAlPiUgDQogIGFkZF9saW5lcyh5ID0gfmZpdHRlZChjaWdfbW9kZWwpKSAlPiUgDQogIGxheW91dCh0aXRsZSA9ICJSZWxhdGlvbnNoaXAgQmV0d2VlbiBHb29nbGUgU2VhcmNoZXMgZm9yICdjaWdhcmV0dGVzJyBhbmQgUGVyY2VudCBvZiBTbW9rZXJzLCBieSBTdGF0ZSIsDQogICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiR29vZ2xlIHNlYXJjaCB2b2x1bWUgZm9yICdjaWdhcmV0dGVzJyIpLA0KICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlN0YXRlIFBlcmNlbnQgb2YgU21va2VycywgcGVyIGNhcGl0YSIpKQ0KYGBgDQoNCjQuIFRoaXMgY29kZSBnYXRoZXJzIEdvb2dsZSBzZWFyY2ggcmVzdWx0cyBmb3IgInZhcGluZyIsIG9yZ2FuaXplcyBpdCBieSByZWdpb24sIGFuZCBnYXRoZXJzIENlbnN1cyBkYXRhIHNvIGl0IGNhbiBiZSBtYXBwZWQuIA0KDQpgYGB7cn0NCnZhcGluZyA8LSB0cmVuZHkoInZhcGluZyIsIGdlbyA9ICJVUyIsIGZyb20gPSAiMjAxOS0wMS0wMSIsIHRvID0gIjIwMjAtMDEtMDEiKQ0KDQp2YXBlX3N0YXRlcyA8LSB2YXBpbmcgJT4lDQogIGdldF9pbnRlcmVzdF9yZWdpb24oKQ0KDQpzdGF0ZXNfbGVhZmxldCA8LSBnZXRfYWNzKGdlb2dyYXBoeSA9ICJzdGF0ZSIsICAgICAgIA0KICAgICAgICAgICAgICAgICAgdmFyaWFibGVzID0gIkIxOTAxM18wMDEiLCAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkgPSBUUlVFKSAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIHNoaWZ0X2dlbyA9IFQgICAgICAgICAgICAgICAgICAgIA0KYGBgDQoNClRoaXMgY29kZSBtYXBzIHRoZSBHb29nbGUgZGF0YSBmcm9tIGFib3ZlIGJ5IGhpdHMgc28geW91IGNhbiBzZWUgd2hpY2ggc3RhdGVzIHNlYXJjaCAidmFwaW5nIiB0aGUgbW9zdC4gDQoNCmBgYHtyfQ0KdmFwZV9jb2xvcnMgPC0gY29sb3JOdW1lcmljKHBhbGV0dGUgPSAidmlyaWRpcyIsIGRvbWFpbiA9IHZhcGVfc3RhdGVzJGhpdHMpDQoNCnN0YXRlc19sZWFmbGV0ICU+JSANCiAgcmVuYW1lKGxvY2F0aW9uID0gTkFNRSkgJT4lIA0KICBpbm5lcl9qb2luKHZhcGVfc3RhdGVzKSAlPiUgDQogIGxlYWZsZXQoKSAlPiUgDQogIGFkZFRpbGVzKCkgJT4lDQogIGFkZFBvbHlnb25zKHdlaWdodCA9IDEsICBmaWxsQ29sb3IgPSB+dmFwZV9jb2xvcnMoaGl0cyksIGxhYmVsID0gfnBhc3RlMChsb2NhdGlvbiwgIiwgU2VhcmNoIHZvbHVtZSA9ICIsIGhpdHMpLCBoaWdobGlnaHQgPSBoaWdobGlnaHRPcHRpb25zKHdlaWdodCA9IDIpKSAlPiUgDQogIHNldFZpZXcoLTk1LCA0MCwgem9vbSA9IDQpICU+JSANCiAgYWRkTGVnZW5kKHBhbCA9IHZhcGVfY29sb3JzLCB2YWx1ZXMgPSB+aGl0cykNCmBgYA0KDQo1LiBEbyB0aGUgbGluZWFyIG1vZGVsIGFuZCBwbG90bHkgZ3JhcGggYmV0d2VlbiB5b3VyIHNlY29uZCB0ZXJtIGFuZCB0aGUgQ0RDIGRhdGEuDQoNCmBgYHtyfQ0Kc21va2luZyA8LSByZWFkX2NzdigiQ2lnX3Ntb2tpbmdfcGVyY2VudC5jc3YiKQ0KDQp2YXBlX2RhdGEgPC0gdmFwZV9zdGF0ZXMgJT4lIA0KICBtdXRhdGUoU3RhdGUgPSBzdGF0ZTJhYmJyKGxvY2F0aW9uKSkgJT4lIA0KICBpbm5lcl9qb2luKHNtb2tpbmcpDQpgYGANCg0KVGhpcyBjb2RlIGNyZWF0ZXMgYSBtb2RlbCBiZXR3ZWVuIHRoZSBDREMgc21va2luZyBkYXRhIGFuZCB0aGUgdmFwaW5nIGRhdGEuIA0KDQpgYGB7cn0NCnZhcGVfbW9kZWwgPC0gbG0oQ2lnX3BlcmNlbnQgfiBoaXRzLCBkYXRhID0gdmFwZV9kYXRhKQ0KDQpnbGFuY2UoY2lnX21vZGVsKQ0KdGlkeShjaWdfbW9kZWwpDQpgYGANCg0KVGhpcyBjb2RlIGNyZWF0ZXMgYSBzY2F0dGVyIHBsb3Qgb2YgdGhlIENEQyBhbmQgR29vZ2xlIHNlYXJjaCBkYXRhIHNvIHRoYXQgeW91IGNhbiBzZWUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZW0uIA0KDQpgYGB7cn0NCnZhcGVfZGF0YSAlPiUgDQogIGRyb3BfbmEoKSAlPiUgDQogIHBsb3RfbHkoeCA9IH5oaXRzLCANCiAgICAgICAgICB5ID0gfkNpZ19wZXJjZW50LA0KICAgICAgICAgIGhvdmVyaW5mbyA9ICJ0ZXh0IiwgDQogICAgICAgICAgdGV4dCA9IH5wYXN0ZSgiU3RhdGU6ICIsIGxvY2F0aW9uLCAiPGJyPiIsICJWYXBpbmcnIHNlYXJjaCByYXRlOiAiLCBoaXRzLCAiPGJyPiIsICJQZXJjZW50IG9mIHNtb2tlcnM6ICIsIENpZ19wZXJjZW50KSkgJT4lIA0KICBhZGRfbWFya2VycyhzaG93bGVnZW5kID0gRikgJT4lIA0KICBhZGRfbGluZXMoeSA9IH5maXR0ZWQodmFwZV9tb2RlbCkpICU+JSANCiAgbGF5b3V0KHRpdGxlID0gIlJlbGF0aW9uc2hpcCBCZXR3ZWVuIEdvb2dsZSBTZWFyY2hlcyBmb3IgJ3ZhcGluZycgYW5kIFBlcmNlbnQgb2YgU21va2VycywgYnkgU3RhdGUiLA0KICAgeGF4aXMgPSBsaXN0KHRpdGxlID0gIkdvb2dsZSBzZWFyY2ggdm9sdW1lIGZvciAndmFwaW5nJyIpLA0KICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIlN0YXRlIFBlcmNlbnQgb2YgU21va2VycywgcGVyIGNhcGl0YSIpKQ0KYGBgDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=