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)Output of the data element of get_ine_population().
list(passed = logical, issues = named list of flagged tibbles).
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
#>
#>