install.packages(‘readr’) ## Instructions
Refer to the detailed instructions for this assignment in Brightspace.
Don’t alter the three code chunks in this section. First we read in the two data sets and deleting missing values.
library(tidyverse)
fluoride <- read_csv("http://jamessuleiman.com/teaching/datasets/fluoride.csv")
fluoride <- fluoride %>% drop_na()
arsenic <- read_csv("http://jamessuleiman.com/teaching/datasets/arsenic.csv")
arsenic <- arsenic %>% drop_na()
Next we display the first few rows of fluoride.
head(fluoride)
## # A tibble: 6 x 6
## location n_wells_tested percent_wells_above_gui… median percentile_95 maximum
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Otis 60 30 1.13 3.2 3.6
## 2 Dedham 102 22.5 0.94 3.27 7
## 3 Denmark 46 19.6 0.45 3.15 3.9
## 4 Surry 175 18.3 0.8 3.52 6.9
## 5 Prospect 57 17.5 0.785 2.5 2.7
## 6 Eastbrook 31 16.1 1.29 2.44 3.3
Then we display the first few rows of arsenic.
head(arsenic)
## # A tibble: 6 x 6
## location n_wells_tested percent_wells_above_g… median percentile_95 maximum
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Manchester 275 58.9 14 93 200
## 2 Gorham 467 50.1 10.5 130 460
## 3 Columbia 42 50 9.8 65.9 200
## 4 Monmouth 277 49.5 10 110 368
## 5 Eliot 73 49.3 9.7 41.4 45
## 6 Columbia F… 25 48 8.1 53.8 71
In the code chunk below, create a new tibble called chemicals that joins fluoride and arsenic. You probably want to do an inner join but the join type is up to you.
chemicals <- fluoride%>% inner_join(arsenic, by = "location")
The next code chunk displays the head of your newly created chemicals tibble. Take a look to verify that your join looks ok.
head(chemicals)
## # A tibble: 6 x 11
## location n_wells_tested.x percent_wells_a… median.x percentile_95.x maximum.x
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Otis 60 30 1.13 3.2 3.6
## 2 Dedham 102 22.5 0.94 3.27 7
## 3 Denmark 46 19.6 0.45 3.15 3.9
## 4 Surry 175 18.3 0.8 3.52 6.9
## 5 Prospect 57 17.5 0.785 2.5 2.7
## 6 Eastbro… 31 16.1 1.29 2.44 3.3
## # … with 5 more variables: n_wells_tested.y <dbl>,
## # percent_wells_above_guideline.y <dbl>, median.y <dbl>,
## # percentile_95.y <dbl>, maximum.y <dbl>
In the code chunk below create an interesting subset of the data. You’ll likely find an interesting subset by filtering for locations that have high or low levels of arsenic, flouride, or both.
wells_above_limits <- filter(chemicals, maximum.x > 2, maximum.y > 10)
slice_max(chemicals, percent_wells_above_guideline.x + percent_wells_above_guideline.y, n=5)
## # A tibble: 5 x 11
## location n_wells_tested.x percent_wells_a… median.x percentile_95.x maximum.x
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Otis 60 30 1.13 3.2 3.6
## 2 Manches… 276 3.3 0.3 1.7 3.6
## 3 Surry 175 18.3 0.8 3.52 6.9
## 4 Monmouth 288 3.1 0.3 1.68 3.4
## 5 Blue Hi… 209 9.6 0.43 2.86 4.5
## # … with 5 more variables: n_wells_tested.y <dbl>,
## # percent_wells_above_guideline.y <dbl>, median.y <dbl>,
## # percentile_95.y <dbl>, maximum.y <dbl>
This query returns the locations with the highest combined percentage of well above acceptable arsenic and fluoride levels. The data was filtered to display the entries that exceeded the Maine’s Maximum Exposure Guideline of 2 milligrams/liter and 10 milligrams/liter for fluoride and arsenic, respectively. The results of this query could assist decision-makers in prioritizing further testing or remediation allocations for each location.
Display the first few rows of your interesting subset in the code chunk below.
wells_above_limits <- filter(chemicals, maximum.x > 2, maximum.y > 10)
wells_above_limits_5 <- slice_max(wells_above_limits, percent_wells_above_guideline.x + percent_wells_above_guideline.y, n=5)
In the code chunk below, create a ggplot visualization of your subset that is fairly simple for a viewer to comprehend.
Figure 1. Frequency (n) of wells above fluoride guidelines (%) by location according to Maine’s Maximum Exposure Guidleine of 2 milligrams/liter
Once you are done, knit, publish, and then submit your link to your published RPubs document in Brightspace.