library(tidyverse) # Joins, summarise and plot ---------------------------------------------------- station <- read_csv("https://heima.hafro.is/~einarhj/data/is_smb_stations.csv") biological <- read_csv("https://heima.hafro.is/~einarhj/data/is_smb_biological.csv") station %>% select(id:lat1) %>% arrange(id) %>% glimpse() biological %>% arrange(id) %>% glimpse() d <- station %>% select(id, date, lon1, lat1) |> left_join(biological |> filter(species == "monkfish"), by = join_by(id)) d <- d |> mutate(species = replace_na(species, "monkfish"), kg = replace_na(kg, 0), n = replace_na(n, 0)) d d_sum <- d |> mutate(year = year(date)) |> group_by(year) |> summarise(n = n(), min_kg = min(kg), max_kg = max(kg), mean_kg = mean(kg), sd_kg = sd(kg), se_kg = sd_kg / sqrt(n), error = se_kg * 1.96, sum_kg = sum(kg)) d_sum d_sum |> mutate(se_lower = mean_kg - error, se_upper = mean_kg + error) |> ggplot() + geom_pointrange(aes(year, mean_kg, ymin = se_lower, ymax = se_upper), size = 0.5) # joins ------------------------------------------------------------------------ x <- tibble(A = c("a", "b", "c"), B = c("t", "u", "v"), C = c(1, 2, 3)) y <- tibble(A = c("a", "b", "d"), B = c("t", "u", "w"), D = c(3, 2, 1)) x y left_join(x, y) right_join(x, y) left_join(y, x) inner_join(x, y) full_join(x, y) # binds and things ---------------------------------------- x <- tibble(A = c("a", "b", "c"), B = c("t", "u", "v"), C = c(1, 2, 3)) y <- tibble(A = c("c", "d"), B = c("v", "w"), C = c(3, 4)) x y bind_rows(x, y) union(x, y) intersect(x, y) setdiff(x, y) setdiff(y, x)