get_population: Get population projections

View source: R/population.R

get_populationR Documentation

Get population projections

Description

MOHFW population projections (2011-2036) at state or district level, based on the 2011 Census. District projections are available using either Census 2011 boundaries (640 districts, 5-year intervals) or current LGD boundaries (785 districts, annual).

Usage

get_population(
  year = NULL,
  geography = c("state", "district"),
  state = NULL,
  boundary = c("census2011", "lgd"),
  geometry = FALSE,
  by_age = FALSE
)

Arguments

year

Integer or integer vector of projection years. If NULL (default), returns all available years.

geography

Geographic level: "state" or "district".

state

Optional. Filter to specific state(s) by name or abbreviation (e.g., "Maharashtra" or "MH").

boundary

For district geography, which boundary system: "census2011" (default, 640 districts) or "lgd" (785 districts). Ignored for state geography.

geometry

If TRUE, attaches geographic boundaries (Census 2011). Only works with boundary = "census2011" for district level.

by_age

If TRUE, returns single years of age 0-14 and 5-year bands 15-19 through 80+ instead of totals. See population_projections_state_age, population_projections_district_age() and population_projections_district_lgd_age(). State coverage by age is 23 major states plus an "India" row and one North-East aggregate row.

Details

State-level data covers 2011-2036 for 38 entries (36 states/UTs plus India total plus Ladakh). Values are in absolute numbers.

The source data rounds Persons, Male, and Female independently (in thousands), so population may differ from males + females by up to 1000 at the state level.

District-level Census 2011 data has projections at 5-year intervals (2011, 2016, 2021, 2026, 2031). LGD district data has annual projections from 2012 to 2031.

A year absent from the table is estimated from the two nearest table years by geometric (exponential) growth, applied separately to males, females and population:

P_t = P_1 (P_2 / P_1)^{(t - t_1) / (t_2 - t_1)}

Estimated districts need not sum exactly to the estimated state.

Telangana and Ladakh are included as separate entries even though they did not exist as states at the time of the 2011 Census.

Value

A tibble (or sf object if geometry = TRUE) with columns: year, state_name_harmonized, males, females, population, district for district-level data, and age_group if by_age = TRUE.

Examples

# State-level projections for 2021
get_population(2021, "state")

# District-level for Kerala
get_population(2021, "district", state = "Kerala")

# LGD boundary districts
get_population(2021, "district", boundary = "lgd")

# Age-stratified state projections
get_population(2021, "state", by_age = TRUE)


censusindia documentation built on Oct. 15, 2026, 5:08 p.m.