Last observation: 2025 (N = 36991)
First observation: 1975 (N = 320)
Last data update: 09 sept. 2026, 08:08
Last compile: 14 sept. 2026, 22:19
gov_10a_main |>
filter(sector == "S13",
time == "2019",
unit == "PC_GDP",
na_item %in% c("D39PAY", "D29PAY", "D29REC", "D39REC")) %>%
select_if(~ n_distinct(.) > 1) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = ifelse(geo %in% c("EU27_2020", "EA19"), "europe", Flag)) |>
select(-na_item) |>
spread(Na_item, values) |>
mutate(Net = `Other taxes on production, revenue` + `Other subsidies on production, revenue` -
`Other taxes on production, expenditure` - `Other subsidies on production, expenditure`) |>
arrange(-`Net`) |>
mutate(Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2020",
unit == "PC_GDP",
na_item %in% c("D39PAY", "D29PAY", "D29REC", "D39REC")) %>%
select_if(~ n_distinct(.) > 1) |>
select(-na_item) |>
spread(Na_item, values) |>
mutate(Net = `Other taxes on production, revenue` + `Other subsidies on production, revenue` -
`Other taxes on production, expenditure` - `Other subsidies on production, expenditure`) |>
arrange(-`Net`) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2020",
unit == "PC_GDP",
na_item %in% c("D39PAY")) |>
select(-unit, -time, -sector) |>
select(-na_item) |>
spread(Na_item, values) |>
arrange(-`Other subsidies on production, expenditure`) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2019",
unit == "PC_GDP",
na_item %in% c("D39PAY"),
geo %in% c("FR", "DE", "IT", "ES", "BE", "NL", "EA19", "EU27_2020", "SE")) |>
select(-unit, -time, -sector) |>
select(-na_item) |>
spread(Na_item, values) |>
arrange(-`Other subsidies on production, expenditure`) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = ifelse(geo %in% c("EA19", "EU27_2020"), "europe", Flag),
Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2020",
unit == "PC_GDP",
geo %in% c("FR", "DE", "IT")) %>%
select_if(~ n_distinct(.) > 1) |>
select(-geo) |>
spread(Geo, values) |>
print_table_conditional()gov_10a_main |>
filter(sector == "S13",
time == "2022",
unit == "PC_GDP",
na_item %in% c("TE")) %>%
select_if(~ n_distinct(.) > 1) |>
arrange(-values) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2021",
unit == "PC_GDP",
na_item %in% c("TE")) %>%
select_if(~ n_distinct(.) > 1) |>
arrange(-values) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
time == "2020",
unit == "PC_GDP",
na_item %in% c("TE")) %>%
select_if(~ n_distinct(.) > 1) |>
arrange(-values) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}gov_10a_main |>
filter(sector == "S13",
unit == "PC_GDP",
na_item %in% c("TE"),
geo %in% c("FR", "IT", "BE", "EL")) |>
year_to_date() |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
add_flag_color("Geo") |>
filter(date >= as.Date("1995-01-01")) |>
mutate(values= values / 100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Dépenses publiques (Points de PIB)") +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(a = 1))
gov_10a_main |>
filter(sector == "S13",
unit == "PC_GDP",
na_item %in% c("TE"),
geo %in% c("FR", "IT", "BE", "EL")) |>
year_to_date() |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
add_flag_color("Geo") |>
filter(date >= as.Date("2000-01-01")) |>
mutate(values= values / 100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Dépenses publiques (Points de PIB)") +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = percent_format(a = 1))
load_data("eurostat/nama_10_gdp.RData")
gdp <- nama_10_gdp |>
filter(na_item == "B1GQ",
# CLV10_MEUR: Chain linked volumes (2010), million euro
unit == "CP_MNAC") |>
select(geo, time, gdp = values)
load_data("eurostat/nasa_10_nf_tr.RData")
geo <- read_parquet("geo.parquet")
data <- nasa_10_nf_tr |>
filter(geo %in% c("FR", "IT", "BE", "EL"),
na_item == "D612",
direct == "RECV",
unit == "CP_MNAC",
sector == "S13") |>
select(geo, time, values, sector) |>
left_join(gdp, by = c("geo", "time")) |>
mutate(values = values/gdp) |>
year_to_date() |>
left_join(geo, by = "geo") |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
add_flag_color("Geo") |>
filter(date >= as.Date("1995-01-01"))
data |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, .2),
labels = percent_format(a = .1))