Import your data

Pivoting

long to wide form

salmon_long <- cleaned_data %>%
    
    pivot_longer(cols = c(dead, discarded), 
                 names_to = "mortality_type",
                 values_to = "count")

wide to long form

salmon_long %>%
    
    pivot_wider(names_from = mortality_type,
                values_from = count)
## # A tibble: 1,296 × 9
##    species date                geo_group region losses escaped other   dead
##    <chr>   <dttm>              <chr>     <chr>   <dbl>   <dbl> <dbl>  <dbl>
##  1 salmon  2020-01-01 00:00:00 county    Agder   31425       0     0  28126
##  2 salmon  2020-02-01 00:00:00 county    Agder   50080       0     0  49755
##  3 salmon  2020-03-01 00:00:00 county    Agder   46337       0     0  46337
##  4 salmon  2020-04-01 00:00:00 county    Agder   33868       0     0  32724
##  5 salmon  2020-05-01 00:00:00 county    Agder   26113       0     0  25774
##  6 salmon  2020-06-01 00:00:00 county    Agder   22677       0     0  21451
##  7 salmon  2020-07-01 00:00:00 county    Agder   20240       0     0  19298
##  8 salmon  2020-08-01 00:00:00 county    Agder  147200       0     0 147200
##  9 salmon  2020-09-01 00:00:00 county    Agder  141296       0     0 130197
## 10 salmon  2020-10-01 00:00:00 county    Agder  105660       0     0 103802
## # ℹ 1,286 more rows
## # ℹ 1 more variable: discarded <dbl>

Separating and Uniting

Separate two columns

cleaned_data %>%
    separate(col = geo_group, into = c("geo_id", "region"), sep = "_")
## Warning: Expected 2 pieces. Missing pieces filled with `NA` in 1296 rows [1, 2, 3, 4, 5,
## 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...].
## # A tibble: 1,296 × 9
##    species date                geo_id region losses   dead discarded escaped
##    <chr>   <dttm>              <chr>  <chr>   <dbl>  <dbl>     <dbl>   <dbl>
##  1 salmon  2020-01-01 00:00:00 county <NA>    31425  28126      3299       0
##  2 salmon  2020-02-01 00:00:00 county <NA>    50080  49755       325       0
##  3 salmon  2020-03-01 00:00:00 county <NA>    46337  46337         0       0
##  4 salmon  2020-04-01 00:00:00 county <NA>    33868  32724      1144       0
##  5 salmon  2020-05-01 00:00:00 county <NA>    26113  25774       339       0
##  6 salmon  2020-06-01 00:00:00 county <NA>    22677  21451      1226       0
##  7 salmon  2020-07-01 00:00:00 county <NA>    20240  19298       942       0
##  8 salmon  2020-08-01 00:00:00 county <NA>   147200 147200         0       0
##  9 salmon  2020-09-01 00:00:00 county <NA>   141296 130197     11099       0
## 10 salmon  2020-10-01 00:00:00 county <NA>   105660 103802      1858       0
## # ℹ 1,286 more rows
## # ℹ 1 more variable: other <dbl>

Unite two columns

cleaned_data %>%
    unite(col = "geo_id", c(geo_group, region), sep = "_")
## # A tibble: 1,296 × 8
##    species date                geo_id      losses   dead discarded escaped other
##    <chr>   <dttm>              <chr>        <dbl>  <dbl>     <dbl>   <dbl> <dbl>
##  1 salmon  2020-01-01 00:00:00 county_Agd…  31425  28126      3299       0     0
##  2 salmon  2020-02-01 00:00:00 county_Agd…  50080  49755       325       0     0
##  3 salmon  2020-03-01 00:00:00 county_Agd…  46337  46337         0       0     0
##  4 salmon  2020-04-01 00:00:00 county_Agd…  33868  32724      1144       0     0
##  5 salmon  2020-05-01 00:00:00 county_Agd…  26113  25774       339       0     0
##  6 salmon  2020-06-01 00:00:00 county_Agd…  22677  21451      1226       0     0
##  7 salmon  2020-07-01 00:00:00 county_Agd…  20240  19298       942       0     0
##  8 salmon  2020-08-01 00:00:00 county_Agd… 147200 147200         0       0     0
##  9 salmon  2020-09-01 00:00:00 county_Agd… 141296 130197     11099       0     0
## 10 salmon  2020-10-01 00:00:00 county_Agd… 105660 103802      1858       0     0
## # ℹ 1,286 more rows

Missing Values

cleaned_data <- tibble(
  region = c("1", "1", "2", "2"),
  date   = c("2020-01-01", "2020-01-02", "2020-01-01", "2020-01-02"),
  losses = c(31425, 32000, 324116, 33000)
)

cleaned_data %>%
    complete(region, date)
## # A tibble: 4 × 3
##   region date       losses
##   <chr>  <chr>       <dbl>
## 1 1      2020-01-01  31425
## 2 1      2020-01-02  32000
## 3 2      2020-01-01 324116
## 4 2      2020-01-02  33000
cleaned_data <- tribble(
  ~geo_group, ~region, ~losses,
  "area",     1,       31425,
  NA,         2,       324116,
  NA,         3,       844829,
  "area",     4,       676852
)

cleaned_data %>%
    fill(geo_group, .direction = "down")
## # A tibble: 4 × 3
##   geo_group region losses
##   <chr>      <dbl>  <dbl>
## 1 area           1  31425
## 2 area           2 324116
## 3 area           3 844829
## 4 area           4 676852