#load in all my libraries
library(leaflet)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(RColorBrewer)
library(raster)
## Loading required package: sp
##
## Attaching package: 'raster'
##
## The following object is masked from 'package:dplyr':
##
## select
library(sp)
library(maps)
## Warning: package 'maps' was built under R version 4.3.3
##
## Attaching package: 'maps'
##
## The following object is masked from 'package:purrr':
##
## map
library(shiny)
## Warning: package 'shiny' was built under R version 4.3.3
#set my working directory
getwd()
## [1] "C:/Users/alyss/OneDrive/Documents/R"
setwd("C:/Users/alyss/OneDrive/Documents/R")
seal_data <- read.csv("C:/Users/alyss/OneDrive/Documents/R/Seal_Data_2010_Tidy.csv")
shark_data <- read.csv("C:/Users/alyss/OneDrive/Documents/R/White_Shark_Data_2024_Tidy.csv")
#set up the map using coordinates of New Zealand with a zoom level to get to right scope. I also added a provider tile to add some texture to the map.
leaflet() %>%
setView(lng = 176.2545,
lat = -41.8384,
zoom = 4) %>%
addTiles() %>%
addProviderTiles("Stadia.StamenTerrain") %>%
addCircleMarkers(data = seal_data,
lng = ~seal_data$Longitude,
lat = ~seal_data$Latitude,
color = "royalblue",
opacity = 0.3,
radius = 0.1) %>%
addCircleMarkers(data = shark_data,
lng = ~shark_data$decimalLongitude,
lat = ~shark_data$decimalLatitude,
color = "red",
opacity= 0.3,
radius = 0.1)
## Warning in validateCoords(lng, lat, funcName): Data contains 1 rows with either
## missing or invalid lat/lon values and will be ignored
ui <- fluidPage(
titlePanel("Annual Seal and Shark Distribution Patterns from 2004-2009"),
fluidRow(column(width = 4, offset = 4, sliderInput("slider", h3("Select the year"), min = 2004, max = 2009, value = 2004, sep = "")),leafletOutput("PopDistr", width = "100%", height = "600px")))
server <- function(input, output, session) {
output$PopDistr <- renderLeaflet({
filter_data <- reactive ({
seal_filtered <- dplyr::filter(seal_data, Year == input$slider)
shark_filtered <- dplyr::filter(shark_data, year == input$slider)
list(seal_filtered = seal_filtered, shark_filtered = shark_filtered)})
leaflet() %>%
setView(lng = 176.2545,lat = -41.8384, zoom = 4) %>%
addTiles() %>%
addProviderTiles("Stadia.StamenTerrain") %>%
addCircleMarkers(data = filter_data()$seal_filtered, lng = ~filter_data()$seal_filtered$Longitude, lat = ~filter_data()$seal_filtered$Latitude, color = "royalblue", opacity = 0.3, radius = 0.1) %>%
addCircleMarkers(data = filter_data()$shark_filtered, lng = ~filter_data()$shark_filtered$decimalLongitude, lat = ~filter_data()$shark_filtered$decimalLatitude, color = "red", opacity= 0.3, radius = 0.1)})
}
shinyApp(ui, server)
Shiny applications not supported in static R Markdown documents