source | dataset | .html | .RData |
---|---|---|---|
2024-10-29 | 2024-10-29 | ||
2024-10-30 | 2024-10-30 |
Quarterly GDP and components - expenditure approach
Data - OECD
Info
Last
obsTime | Nobs |
---|---|
2024-Q1 | 3426 |
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 | 330580 |
L | Chain linked volume | 254260 |
Q | Constant prices | 19194 |
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 | 138018 |
P51G | Gross fixed capital formation | 38348 |
B1GQ | Gross domestic product | 31696 |
P6 | Exports of goods and services | 31456 |
P7 | Imports of goods and services | 31456 |
B11 | External balance of goods and services | 30535 |
P5 | Gross capital formation | 28977 |
P61 | Exports of goods | 27830 |
P62 | Exports of services | 27830 |
P71 | Imports of goods | 27830 |
P72 | Imports of services | 27830 |
P3T5 | Domestic demand | 22141 |
P31 | Individual consumption expenditure | 20418 |
P32 | Collective consumption expenditure | 20418 |
P41 | Actual individual consumption | 19647 |
P5M | Changes in inventories and acquisitions less disposals of valuables | 19626 |
P52 | Changes in inventories | 19027 |
YA0 | Statistical discrepancy (expenditure approach) | 12423 |
PPP_B1GQ | Purchasing Power Parities for GDP | 12283 |
P53 | Acquisitions less disposals of valuables | 11026 |
P3_P51G | Final domestic demand excluding inventories | 3466 |
P3T6 | Total demand | 1753 |
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 | 487030 |
_T | Total - all activities | 117004 |
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.287156 | -1.7291755 |
B1GQ | Gross domestic product | 7.041177 | 19.6331632 |
P3 | Final consumption expenditure | 4.479080 | 16.6880636 |
P3_P51G | Final domestic demand excluding inventories | NA | 21.3604201 |
P3T5 | Domestic demand | NA | 21.3806857 |
P5 | Gross capital formation | 1.220627 | 4.8037966 |
P51G | Gross fixed capital formation | 1.483995 | 4.7447538 |
P52 | Changes in inventories | NA | -0.2439831 |
P5M | Changes in inventories and acquisitions less disposals of valuables | NA | -0.2439831 |
P6 | Exports of goods and services | 9.951200 | 3.2639284 |
P61 | Exports of goods | 6.669007 | 2.2676906 |
P62 | Exports of services | 3.273337 | 1.0222977 |
P7 | Imports of goods and services | 8.664046 | 4.9931070 |
P71 | Imports of goods | 5.610402 | 4.2424669 |
P72 | Imports of services | 3.135997 | 0.7664190 |
YA0 | Statistical discrepancy (expenditure approach) | NA | -0.2058566 |
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())