Population by sex, age group, size of household and NUTS 3 regions - cens_01rhsize

Data - Eurostat

Info

Last observation: Annual: 2001 (N = 288,524)

First observation: Annual: 2001 (N = 288,524)

Last data update: 11 aoû 2026, 20:46. Last compile: 11 aoû 2026, 23:16

Structure

Living Alone, by Country (2001 Census)

Code
cens_01rhsize |>
  filter(sex == "T", age == "TOTAL", nchar(geo) <= 2, n_person != "UNK") |>
  mutate(Geo = ifelse(geo == "LU", "Luxembourg", Geo)) |>
  group_by(geo, Geo) |>
  mutate(total = sum(values, na.rm = TRUE)) |>
  ungroup() |>
  filter(n_person == "1") |>
  mutate(share = values / total) |>
  mutate(Geo = reorder(Geo, share)) |>
  ggplot() + geom_col(aes(x = Geo, y = share), fill = "steelblue") +
  coord_flip() +
  theme_minimal() +
  xlab("") + ylab("Share of population living in a 1-person household") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Household Size Distribution: France, Italy, Spain, Poland

Code
cens_01rhsize |>
  filter(sex == "T", age == "TOTAL", geo %in% c("FR", "IT", "ES", "PL"),
         n_person != "UNK") |>
  group_by(geo) |>
  mutate(total = sum(values, na.rm = TRUE)) |>
  ungroup() |>
  mutate(share = values / total,
         N_person = factor(N_person, levels = c("1 person", "2 persons", "3 persons",
                                                  "4 persons", "5 persons", "6 persons or more"))) |>
  ggplot() + geom_col(aes(x = N_person, y = share, fill = Geo), position = "dodge") +
  theme_minimal() +
  theme(legend.title = element_blank()) +
  xlab("") + ylab("Share of population") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Snapshot: Household Size Shares by Country

Code
cens_01rhsize |>
  filter(sex == "T", age == "TOTAL", nchar(geo) <= 2, n_person != "UNK",
         geo %in% c("FR", "IT", "ES", "PL", "NL", "FI")) |>
  mutate(Geo = ifelse(geo == "LU", "Luxembourg", Geo)) |>
  group_by(geo, Geo) |>
  mutate(total = sum(values, na.rm = TRUE)) |>
  ungroup() |>
  mutate(share = round(100 * values / total, 1)) |>
  select(Geo, N_person, share) |>
  spread(N_person, share) |>
  print_table_conditional()
Geo 1 person 2 persons 3 persons 4 persons 5 persons 6 persons or more
Finland 16.9 28.4 18.5 20.1 10.2 6.0
France 12.9 25.9 20.2 22.9 11.6 6.6
Italy 9.6 20.9 24.9 29.2 11.2 4.2
Netherlands 14.6 28.7 17.2 24.2 10.6 4.8
Poland 8.7 16.4 21.1 25.4 14.4 14.0
Spain 7.1 17.6 22.2 30.0 13.5 9.5