Checks: no negative/missing counts; full age range (0..100) present per province-year; no duplicate province-age-year rows; continuous year coverage; no implausible age-to-age jumps (>50%, informational only).

validate_population(df)

Arguments

df

Output of the data element of get_ine_population().

Value

list(passed = logical, issues = named list of flagged tibbles).

Examples

population_df <- tibble::tibble(
  nuts3_code = c("ES611", "ES611"),
  province_name = c("Almeria", "Almeria"),
  year = c(2020, 2020),
  age = c(0, 1),
  female = c(480, 490),
  male = c(500, 505),
  total = female + male
)
validate_population(population_df)
#> Warning: Population validation flagged 1 issue category.
#> $passed
#> [1] FALSE
#> 
#> $issues
#> $issues$incomplete_age_range
#> # A tibble: 1 × 4
#>   nuts3_code province_name  year n_ages
#>   <chr>      <chr>         <dbl>  <int>
#> 1 ES611      Almeria        2020      2
#> 
#>