Hospital beds by NUTS 2 regions - hlth_rs_prs2
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 222)
First observation: Annual: 1960 (N = 45)
Last data update: 23 jul 2026, 22:13. Last compile: 24 jul 2026, 01:52
Structure
Ex 1: Physicians per Country
Code
latest_y_phys <- hlth_rs_prs2 %>%
filter(unit == "P_HTHAB",
wstatus == "PRACT",
med_spec == "PHYS",
nchar(geo) == 2,
!is.na(values)) %>%
summarise(m = max(time)) %>%
pull(m)
hlth_rs_prs2 %>%
filter(time == latest_y_phys,
nchar(geo) == 2,
unit == "P_HTHAB",
wstatus == "PRACT",
med_spec == "PHYS") %>%
select(geo, Geo, physicians_per_100k = values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}France, Germany, Spain, Italy
Practising Physicians
Code
hlth_rs_prs2 %>%
filter(geo %in% c("FR", "DE", "ES", "IT"),
unit == "P_HTHAB",
wstatus == "PRACT",
med_spec == "PHYS") %>%
year_to_date %>%
left_join(colors, by = c("Geo" = "country")) %>%
ggplot + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + scale_color_identity() + add_4flags +
scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("Practising physicians (per 100,000 inhabitants)")
France
Health Personnel by Profession
Code
hlth_rs_prs2 %>%
filter(geo == "FR",
unit == "P_HTHAB",
wstatus == "PRACT",
med_spec %in% c("PHYS", "DENT", "PHARM")) %>%
year_to_date %>%
ggplot + geom_line(aes(x = date, y = values, color = Med_spec)) +
theme_minimal() +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("Practising personnel (per 100,000 inhabitants)")
Latest Year by Country
Code
latest_y <- hlth_rs_prs2 %>%
filter(unit == "P_HTHAB",
wstatus == "PRACT",
med_spec %in% c("PHYS", "DENT", "NRS"),
geo %in% c("FR", "DE", "ES", "IT", "EU27_2020"),
!is.na(values)) %>%
summarise(m = max(time)) %>%
pull(m)
hlth_rs_prs2 %>%
filter(time == latest_y,
unit == "P_HTHAB",
wstatus == "PRACT",
med_spec %in% c("PHYS", "DENT", "NRS"),
geo %in% c("FR", "DE", "ES", "IT", "EU27_2020")) %>%
select(Geo, Med_spec, values) %>%
spread(Med_spec, values) %>%
print_table_conditional()| Geo | Dentists | Nurses (EU recognised qualification) | Physicians |
|---|---|---|---|
| France | 70.39 | NA | 393.85 |
| Germany | 86.19 | 1251.25 | 475.40 |
| Italy | 87.66 | 691.60 | 575.43 |
| Spain | 68.13 | 573.31 | 463.78 |