source | dataset | .html | .RData |
---|---|---|---|
oecd | QNA_EXPENDITURE_CAPITA | 2024-11-22 | 2024-11-22 |
oecd | QNA_EXPENDITURE_NATIO_CURR | 2024-11-17 | 2024-11-22 |
Quarterly GDP and components - expenditure approach
Data - OECD
Info
Last
obsTime | Nobs |
---|---|
2024-Q3 | 792 |
PRICE_BASE
Code
%>%
QNA_EXPENDITURE_NATIO_CURR left_join(PRICE_BASE, by = "PRICE_BASE") %>%
group_by(PRICE_BASE, Price_base) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
PRICE_BASE | Price_base | Nobs |
---|---|---|
V | Current prices | 335451 |
L | Chain linked volume | 257357 |
Q | Constant prices | 19439 |
REF_AREA
Code
%>%
QNA_EXPENDITURE_NATIO_CURR left_join(REF_AREA, by = "REF_AREA") %>%
group_by(REF_AREA, Ref_area) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
TRANSACTION
Code
%>%
QNA_EXPENDITURE_NATIO_CURR left_join(TRANSACTION, by = "TRANSACTION") %>%
group_by(TRANSACTION, Transaction) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
TRANSACTION | Transaction | Nobs |
---|---|---|
P3 | Final consumption expenditure | 141301 |
P51G | Gross fixed capital formation | 38738 |
B1GQ | Gross domestic product | 32064 |
P6 | Exports of goods and services | 31784 |
P7 | Imports of goods and services | 31784 |
B11 | External balance of goods and services | 31339 |
P5 | Gross capital formation | 29287 |
P61 | Exports of goods | 28123 |
P62 | Exports of services | 28123 |
P71 | Imports of goods | 28123 |
P72 | Imports of services | 28123 |
P3T5 | Domestic demand | 22491 |
P31 | Individual consumption expenditure | 20654 |
P32 | Collective consumption expenditure | 20654 |
P41 | Actual individual consumption | 19880 |
P5M | Changes in inventories and acquisitions less disposals of valuables | 19532 |
P52 | Changes in inventories | 18923 |
YA0 | Statistical discrepancy (expenditure approach) | 12526 |
PPP_B1GQ | Purchasing Power Parities for GDP | 12382 |
P53 | Acquisitions less disposals of valuables | 11159 |
P3_P51G | Final domestic demand excluding inventories | 3484 |
P3T6 | Total demand | 1773 |
ACTIVITY
Code
%>%
QNA_EXPENDITURE_NATIO_CURR left_join(ACTIVITY, by = "ACTIVITY") %>%
group_by(ACTIVITY, Activity) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
ACTIVITY | Activity | Nobs |
---|---|---|
_Z | Not applicable | 494608 |
_T | Total - all activities | 117639 |
U.S. VS Europe
Table
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20"),
== "Q",
FREQ # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1",
SECTOR %in% c("1999-Q1", "2023-Q4")) %>%
obsTime left_join(TRANSACTION, by = "TRANSACTION") %>%
left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "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 | EA20 | USA |
---|---|---|---|
B11 | External balance of goods and services | 1.465843 | -1.7832772 |
B1GQ | Gross domestic product | 7.942311 | 20.4706909 |
P3 | Final consumption expenditure | 5.183029 | 17.2734263 |
P3_P51G | Final domestic demand excluding inventories | NA | 22.3269393 |
P3T5 | Domestic demand | NA | 22.2774328 |
P5 | Gross capital formation | 1.258781 | 5.1159848 |
P51G | Gross fixed capital formation | 1.634104 | 5.1257876 |
P52 | Changes in inventories | NA | -0.2746782 |
P5M | Changes in inventories and acquisitions less disposals of valuables | NA | -0.2746782 |
P6 | Exports of goods and services | 9.879379 | 3.3572355 |
P61 | Exports of goods | 6.194857 | 2.2686289 |
P62 | Exports of services | 3.731638 | 1.1165931 |
P7 | Imports of goods and services | 8.413536 | 5.1405158 |
P71 | Imports of goods | 5.084226 | 4.2186960 |
P72 | Imports of services | 3.470262 | 0.9249768 |
YA0 | Statistical discrepancy (expenditure approach) | NA | -0.2541891 |
P3 - Final consumption expenditure / capita
Code
metadata_load_fr("REF_AREA", "CL_AREA", data = QNA_EXPENDITURE_NATIO_CURR_var)
<- QNA_EXPENDITURE_NATIO_CURR %>%
plot filter(REF_AREA %in% c("USA", "EA20"),
== "Q",
FREQ == "P3",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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
Code
save(plot, file = "QNA_EXPENDITURE_NATIO_CURR_files/figure-html/USA-EA20-1999-percapita-1.RData")
U.S., Europe, France, Germany
B1GQ - GDP
1995-
Code
metadata_load("REF_AREA", "CL_AREA", data = QNA_EXPENDITURE_NATIO_CURR_var)
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "B1GQ",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date arrange(desc(date)) %>%
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
1999-
Total
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "B1GQ",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
Per Capita
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "B1GQ",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
P51G - Gross fixed capital formation
1995-
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P51G",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date arrange(desc(date)) %>%
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
1999-
Total
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P51G",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
Per Capita
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P51G",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
P3 - Final consumption expenditure
All
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P3",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date arrange(desc(date)) %>%
left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
1995-
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P3",
TRANSACTION == "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date arrange(desc(date)) %>%
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
1999-
Total
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P3",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR %>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
Per Capita
Code
metadata_load_fr("REF_AREA", "CL_AREA", data = QNA_EXPENDITURE_NATIO_CURR_var)
<- QNA_EXPENDITURE_NATIO_CURR %>%
plot filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P3",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y",
ADJUSTMENT == "S1") %>%
SECTOR left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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-EA20-FRA-DEU-1999-percapita-1.RData")
plot
P31 - Individual consumption expenditure
Code
metadata_load("REF_AREA", "CL_AREA", data = QNA_EXPENDITURE_NATIO_CURR_var)
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P31",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
P32 - Collective consumption expenditure
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P32",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
P41 - Actual individual consumption
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P41",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
P3T5 - Domestic demand
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
== "Q",
FREQ == "P3T5",
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(QNA_POP_EMPNC_extract, by = c("obsTime", "REF_AREA")) %>%
mutate(obsValue = obsValue/population) %>%
%>%
quarter_to_date
left_join(REF_AREA, by = "REF_AREA") %>%
filter(date >= as.Date("1999-01-01")) %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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))
Net exports
Eurozone, US, France, Germany
Tous
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20", "USA", "DEU", "FRA"),
== "Q",
FREQ %in% c("B11", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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")) %>%
+ geom_line(aes(x = date, y = obsValue, color = color)) +
ggplot 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")
1990-
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20", "USA", "DEU", "FRA"),
== "Q",
FREQ %in% c("B11", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(REF_AREA, by = "REF_AREA") %>%
left_join(PRICE_BASE, by = "PRICE_BASE") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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")) %>%
+ geom_line(aes(x = date, y = obsValue, color = color)) +
ggplot 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")
Eurozone, US
Tous
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20", "USA"),
== "Q",
FREQ %in% c("B11", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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)) %>%
+ geom_line(aes(x = date, y = obsValue, color = color)) +
ggplot 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")
1970-
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20", "USA"),
== "Q",
FREQ %in% c("B11", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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)) %>%
+ geom_line(aes(x = date, y = obsValue, color = color)) +
ggplot 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")
1990-
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20", "USA"),
== "Q",
FREQ %in% c("B11", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "EA20", "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)) %>%
+ geom_line(aes(x = date, y = obsValue, color = color)) +
ggplot 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")
Exports and Imports as a % of GDP
EA 20
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("EA20"),
== "Q",
FREQ %in% c("P6", "P7", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "L",
PRICE_BASE == "Y") %>%
ADJUSTMENT 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) %>%
+ geom_line(aes(x = date, y = value, color = variable)) +
ggplot 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())
USA
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("USA"),
== "Q",
FREQ %in% c("P6", "P7", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT 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) %>%
+ geom_line(aes(x = date, y = value, color = variable)) +
ggplot 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())
Germany
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("DEU"),
== "Q",
FREQ %in% c("P6", "P7", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT 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) %>%
+ geom_line(aes(x = date, y = value, color = variable)) +
ggplot 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())
France
Code
%>%
QNA_EXPENDITURE_NATIO_CURR filter(REF_AREA %in% c("FRA"),
== "Q",
FREQ %in% c("P6", "P7", "B1GQ"),
TRANSACTION # L = Chain linked volume
== "V",
PRICE_BASE == "Y") %>%
ADJUSTMENT 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) %>%
+ geom_line(aes(x = date, y = value, color = variable)) +
ggplot 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())