---
title: "Typical Usage"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Typical Usage}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
## Discover indicators
```{r setup}
library(healthatlas)
```
Let's set our health atlas. For this example we will use the Chicago Health Atlas. We can do so by calling `ha_set()` with the Chicago Health Atlas URL.
```{r}
ha_set("chicagohealthatlas.org")
```
If we need to check which health atlas we are using, we can use `ha_get()`.
```{r}
ha_get()
```
We can list all the topics (aka indicators) present within Chicago Health Atlas by using `ha_topics()`. The most important column here is the `topic_key`. An individual `topic_key` can be used to identify a topic within subsequent functions.
```{r}
topics <- ha_topics(progress = FALSE)
topics
```
There may be a specific topic area you are interested in exploring. You can explore these topic areas using `ha_subcategories()`.
```{r}
subcategories <- ha_subcategories()
subcategories
```
You can use a `subcategory_key` to subset the list of topics.
```{r}
ha_topics("diet-exercise")
```
Once we have a topic or topics in mind, we can explore what populations, time periods, and geographic scales that data is available at by using `ha_coverage()`. Again, the most important columns here are the key columns which can be used to specify the data desired.
```{r}
coverage <- ha_coverage("HCSFVAP", progress = FALSE)
coverage
```
## Import tabular data
Now, we can import our data using `ha_data()` and specifying the keys we identified above.
```{r}
ease_of_access <- ha_data(
topic_key = "HCSFVAP",
population_key = "",
period_key = "2022-2023",
layer_key = "neighborhood"
)
ease_of_access
```
We can even specify multiple topics, populations, and periods to get data for. `ha_data()` will return a combined table with data for every combination of topic, population, and period requested. A warning will be given for every invalid combindation of topic, population, and period requested.
```{r}
combinations_of_data <- ha_data(
topic_key = c("POP", "UMP"),
population_key = c("", "H"),
period_key = c("2017-2021", "2018-2022", "invalid"),
layer_key = "neighborhood"
)
combinations_of_data
```
If you want to mix and match topics, populations, years, or layers of data, I recommend creating a table of all the datasets you want, and `purrr::pmap()`-ing over the table.
```{r}
library(tibble)
library(purrr)
# creating a table of data I want
metadata <- tribble(
~ topic_key, ~ population_key, ~ period_key, ~ layer_key,
"POP", "", "2017-2021", "neighborhood",
"HCSFVAP", "", "2020-2021", "neighborhood",
"UMP", "H", "2017-2021", "neighborhood",
)
metadata %>%
pmap(ha_data)
```
## Import spatial data
We can see all the geographic layers available by using `ha_layers()`.
```{r}
layers <- ha_layers()
layers
```
Since we just downloaded our data at the Community Area level, let's import the Community Area geographic layer with `ha_layer()`.
```{r}
community_areas <- ha_layer("neighborhood")
community_areas
```
You can also set `geometry = TRUE` within your data call to get the geographic layer's geometry along with your data.
```{r}
ease_of_access <- ha_data(
topic_key = "HCSFVAP",
population_key = "",
period_key = "2022-2023",
layer_key = "neighborhood",
geometry = TRUE
)
ease_of_access
```
Let's map our data!
```{r}
library(ggplot2)
plot <- ggplot(ease_of_access) +
geom_sf(aes(fill = value), alpha = 0.7) +
scale_fill_distiller(palette = "GnBu", direction = 1) +
labs(
title = "Easy Access to Fruits and Vegetables within Chicago",
fill = "Percent of adults who reported\nthat it is very easy for them to\nget fresh fruits and vegetables."
) +
theme_minimal()
plot
```
Our map looks pretty good, but perhaps there is a point layer that may provide more insight into the spatial variation of the ease of access to fruits and vegetables. We can use `ha_point_layers()` to list all the point layers available in the Chicago Health Atlas.
```{r}
point_layers <- ha_point_layers()
point_layers
```
Grocery store locations may be an important aspect of the ease of access to fruits and vegetables. We can import this layer by providing the `point_layer_uuid` to `ha_point_layer()`.
```{r}
grocery_stores <- ha_point_layer("7d9caf3c-75e6-4382-8c97-069696a3efbf")
```
Now that we have imported our grocery stores, let's layer them on top of our map.
```{r}
plot +
geom_sf(data = grocery_stores, size = 0.5)
```
As expected, it seems that the areas with more grocery stores tend to have a higher percent of adults who report that it is very easy to get fresh fruits and vegetables.
This is a typical use case for the `healthatlas` in which we explored every function that `healthatlas` has to offer. Now it's time for you to explore!