# packages (https://statsandr.com/blog/an-efficient-way-to-install-and-load-r-packages/)
<- c("rinat", "tidyverse", "leaflet", "htmltools")
packages
<- packages %in% rownames(installed.packages())
installed_packages
if (any(installed_packages == FALSE)) {
install.packages(packages[!installed_packages])
else {
} invisible(lapply(packages, library, character.only = TRUE)); rm(packages, installed_packages)
}
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.7 ✔ dplyr 1.0.9
## ✔ tidyr 1.2.0 ✔ stringr 1.4.0
## ✔ readr 2.1.2 ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
<- get_inat_obs_project("lente-ecologica-biodiversidade-do-norte-fluminense-03ec13fb-b9dc-4175-b47e-09dce7fa5848", type = "info", raw = FALSE) lente
## 237 records
# extrair registros
<- get_inat_obs_project(lente$id, type = "observations") lente_obs
## 237 records
## Getting records 0-200
## Getting records up to 400
## Done.
%>%
lente_obs ggplot(aes(x = as.numeric(longitude), y = as.numeric(latitude))) +
# colour = scientific_name)) +
geom_polygon(data = map_data("world"),
aes(x = long, y = lat, group = group),
fill = "grey95",
color = "gray40",
linewidth = 0.1) +
geom_point(size = 0.7, alpha = 0.5) +
coord_fixed(xlim = range(as.numeric(lente_obs$longitude), na.rm = TRUE),
ylim = range(as.numeric(lente_obs$latitude), na.rm = TRUE)) +
theme_classic() +
labs(x = "Longitude", y = "Latitude")
## Warning: Ignoring unknown parameters: linewidth
%>%
lente_obs leaflet() %>%
addTiles() %>%
addMarkers(~as.numeric(longitude),
~as.numeric(latitude),
label = ~htmltools::htmlEscape(paste("species=", species_guess, "/", "id=", id)),
popup = ~htmltools::htmlEscape(paste("data=", observed_on)))
%>%
lente_obs select(observed_on, quality_grade, species_guess, user_id, quality_grade) %>%
mutate(ano_mes = as.POSIXct(observed_on) %>% zoo::as.yearmon()) %>%
group_by(ano_mes, quality_grade) %>%
summarise(occ = n_distinct(species_guess)) %>%
ggplot(aes(x = ano_mes, y = occ, fill = quality_grade)) +
geom_bar(stat = "identity") +
theme_classic() +
labs(x = "", y = "registros (n)")
## `summarise()` has grouped output by 'ano_mes'. You can override using the
## `.groups` argument.
# ordenar
<- lente_obs %>%
ordem select(observed_on, quality_grade, species_guess, user_id, quality_grade) %>%
mutate(ano_mes = as.POSIXct(observed_on) %>% zoo::as.yearmon()) %>%
group_by(user_id) %>%
summarise(occ = n_distinct(species_guess)) %>%
arrange(-occ) %>% pull(user_id)
# grafico
%>%
lente_obs select(observed_on, quality_grade, species_guess, user_id, quality_grade) %>%
mutate(ano_mes = as.POSIXct(observed_on) %>% zoo::as.yearmon()) %>%
group_by(user_id, quality_grade) %>%
summarise(occ = n_distinct(species_guess)) %>%
arrange(-occ) %>%
ggplot(aes(y = occ, x = factor(user_id, levels = ordem), fill = quality_grade)) +
geom_bar(stat = "identity") +
theme_classic() +
theme(axis.text.x = element_text(angle=90, hjust=1, vjust=0.5),
legend.title = element_blank()) +
labs(x = "", y = "registros (n)")
## `summarise()` has grouped output by 'user_id'. You can override using the
## `.groups` argument.
Colabore, compartilhe, e cite as fontes!