Last observation: Q: 2026-Q4 (N = 1) · A: 2025 (N = 3751)
First observation: A: 1947 (N = 37) · Q: 1947-Q1 (N = 37)
Last data update: 16 aoû 2026, 20:56. Last compile: 18 aoû 2026, 02:05
Data - OECD
Last observation: Q: 2026-Q4 (N = 1) · A: 2025 (N = 3751)
First observation: A: 1947 (N = 37) · Q: 1947-Q1 (N = 37)
Last data update: 16 aoû 2026, 20:56. Last compile: 18 aoû 2026, 02:05
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA"),
FREQ == "Q",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1",
obsTime %in% c("1999-Q1", "2023-Q4")) |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = 4*obsValue/population) %>%
select_if(~ n_distinct(.) > 1) |>
select(REF_AREA, TRANSACTION, Transaction, obsTime, obsValue) |>
spread(obsTime, obsValue) |>
mutate(change = `2023-Q4`-`1999-Q1`) |>
select(REF_AREA, TRANSACTION, Transaction, change) |>
spread(REF_AREA, change) |>
print_table_conditional()| TRANSACTION | Transaction | EA | USA |
|---|---|---|---|
| B11 | External balance of goods and services | 1.487252 | -1.7562333 |
| B1GQ | Gross domestic product | 8.293334 | 20.2089680 |
| P3 | Final consumption expenditure | 5.406933 | 16.9323870 |
| P3_P51G | Final domestic demand excluding inventories | NA | 21.9965672 |
| P3T5 | Domestic demand | NA | 21.9885562 |
| P5 | Gross capital formation | 1.363472 | 5.1699033 |
| P51G | Gross fixed capital formation | 1.765036 | 5.1380607 |
| P52 | Changes in inventories | NA | -0.2244694 |
| P5M | Changes in inventories and acquisitions less disposals of valuables | NA | -0.2244694 |
| P6 | Exports of goods and services | 9.958429 | 3.3483935 |
| P61 | Exports of goods | 6.157792 | 2.2416424 |
| P62 | Exports of services | 3.853228 | 1.1334371 |
| P7 | Imports of goods and services | 8.471177 | 5.1046312 |
| P71 | Imports of goods | 5.067714 | 4.1602559 |
| P72 | Imports of services | 3.555563 | 0.9461343 |
| YA0 | Statistical discrepancy (expenditure approach) | NA | -0.2418460 |
plot <- QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA"),
FREQ == "Q",
TRANSACTION == "P3",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Zone euro", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
ggplot() + theme_minimal() + xlab("") + ylab("Consommation par habitant (1999T1 = 100)") +
geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
scale_color_manual(values = c("#B22234", "#003399")) +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.26, 0.8),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1999-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
fill = '#B22234', alpha = 0.1) +
geom_rect(data = cepr_recessions |>
filter(Peak > as.Date("1999-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
fill = '#003399', alpha = 0.1) +
labs(caption = "Source: OCDE, Comptes Trimestriels, Volumes chaînés")
plot
save(plot, file = "QNA_EXPENDITURE_NATIO_CURR_files/figure-html/USA-EA-1999-percapita-1.RData")QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
arrange(desc(date)) |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1995, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P51G",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
arrange(desc(date)) |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1995, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 500, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P51G",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P51G",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P3",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
arrange(desc(date)) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1900, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(20, 600, 20))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P3",
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
arrange(desc(date)) |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1995, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P3",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.26, 0.8),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
plot <- QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P3",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Zone euro", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
ggplot() + theme_minimal() + xlab("") + ylab("Consommation par habitant (1999T1 = 100)") +
geom_line(aes(x = date, y = obsValue, color = Ref_area)) +
scale_color_manual(values = c("#000000", "#B22234", "#808080", "#003399")) +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.26, 0.8),
legend.title = element_blank()) +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1999-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
fill = '#B22234', alpha = 0.1) +
geom_rect(data = cepr_recessions |>
filter(Peak > as.Date("1999-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = 0, ymax = +Inf),
fill = '#003399', alpha = 0.1) +
labs(caption = "Source: OCDE, Comptes Trimestriels, Volumes chaînés")
save(plot, file = "QNA_EXPENDITURE_NATIO_CURR_files/figure-html/USA-EA-FRA-DEU-1999-percapita-1.RData")
plot
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P31",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_3flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P32",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_3flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P41",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_2flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "P3T5",
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y") |>
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA", "Ref_area")) |>
mutate(obsValue = obsValue/population) |>
quarter_to_date() |>
filter(date >= as.Date("1999-01-01")) |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
arrange(date) |>
mutate(obsValue = 100 * obsValue / obsValue[1]) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(Ref_area != "DEU", color2, color)) |>
ggplot() + theme_minimal() + xlab("") + ylab("") +
geom_line(aes(x = date, y = obsValue, color = color)) + add_3flags +
scale_color_identity() +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(50, 200, 5)) +
geom_label_repel(data = . %>% filter(date == max(date)),
aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA", "USA", "DEU", "FRA"),
FREQ == "Q",
TRANSACTION %in% c("B11", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) %>%
select_if(~ n_distinct(.) > 1) |>
select(-OBS_STATUS) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
filter(date >= as.Date("1970-01-01")) |>
transmute(date, Ref_area, obsValue = B11/B1GQ) |>
left_join(colors, by = c("Ref_area" = "country")) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("") + scale_color_identity() + add_4flags +
scale_x_date(breaks = c(seq(1970, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed")
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA", "USA", "DEU", "FRA"),
FREQ == "Q",
TRANSACTION %in% c("B11", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) %>%
select_if(~ n_distinct(.) > 1) |>
select(-OBS_STATUS) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
filter(date >= as.Date("1990-01-01")) |>
transmute(date, Ref_area, obsValue = B11/B1GQ) |>
left_join(colors, by = c("Ref_area" = "country")) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("") + scale_color_identity() + add_4flags +
scale_x_date(breaks = c(seq(1970, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed")
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA", "USA"),
FREQ == "Q",
TRANSACTION %in% c("B11", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
transmute(date, REF_AREA, Ref_area, obsValue = B11/B1GQ) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("") + scale_color_identity() + add_2flags +
scale_x_date(breaks = c(seq(1920, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed")
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA", "USA"),
FREQ == "Q",
TRANSACTION %in% c("B11", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
filter(date >= as.Date("1970-01-01")) |>
transmute(date, REF_AREA, Ref_area, obsValue = B11/B1GQ) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("") + scale_color_identity() + add_2flags +
scale_x_date(breaks = c(seq(1970, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed")
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA", "USA"),
FREQ == "Q",
TRANSACTION %in% c("B11", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") |>
mutate(Ref_area = ifelse(REF_AREA == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
transmute(date, REF_AREA, Ref_area, obsValue = B11/B1GQ) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("") + scale_color_identity() + add_2flags +
scale_x_date(breaks = c(seq(1970, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed")
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("EA"),
FREQ == "Q",
TRANSACTION %in% c("P6", "P7", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "L",
ADJUSTMENT == "Y") %>%
select_if(~ n_distinct(.) > 1) |>
select(-OBS_STATUS) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
transmute(date, `Exports (% of GDP)` = P6/B1GQ, `Imports (% of GDP)` = P7/B1GQ) |>
gather(variable, value, -date) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("USA"),
FREQ == "Q",
TRANSACTION %in% c("P6", "P7", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
transmute(date, `Exports (% of GDP)` = P6/B1GQ, `Imports (% of GDP)` = P7/B1GQ) |>
gather(variable, value, -date) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = c(seq(1940, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("DEU"),
FREQ == "Q",
TRANSACTION %in% c("P6", "P7", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
transmute(date, `Exports (% of GDP)` = P6/B1GQ, `Imports (% of GDP)` = P7/B1GQ) |>
gather(variable, value, -date) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = c(seq(1940, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
QNA_EXPENDITURE_NATIO_CURR |>
filter(REF_AREA %in% c("FRA"),
FREQ == "Q",
TRANSACTION %in% c("P6", "P7", "B1GQ"),
# L = Chain linked volume
PRICE_BASE == "V",
ADJUSTMENT == "Y") %>%
select_if(~ n_distinct(.) > 1) |>
spread(TRANSACTION, obsValue) |>
quarter_to_date() |>
transmute(date, `Exports (% of GDP)` = P6/B1GQ, `Imports (% of GDP)` = P7/B1GQ) |>
gather(variable, value, -date) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_x_date(breaks = c(seq(1940, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())