Structure of consumption expenditure by age of the reference person and COICOP consumption purpose
Data - Eurostat
Info
Data on housing
source | dataset | .html | .RData |
---|---|---|---|
bdf | RPP | 2024-07-26 | 2024-07-01 |
bis | LONG_PP | 2024-08-09 | 2024-05-10 |
bis | SELECTED_PP | 2024-10-31 | 2024-10-31 |
ecb | RPP | 2024-10-08 | 2024-10-30 |
eurostat | ei_hppi_q | 2024-11-05 | 2024-10-23 |
eurostat | hbs_str_t223 | 2024-11-05 | 2024-11-05 |
eurostat | prc_hicp_midx | 2024-11-01 | 2024-11-05 |
eurostat | prc_hpi_q | 2024-11-01 | 2024-10-09 |
fred | housing | 2024-11-01 | 2024-11-01 |
insee | IPLA-IPLNA-2015 | 2024-11-05 | 2024-11-05 |
oecd | housing | 2024-09-15 | 2020-01-18 |
oecd | SNA_TABLE5 | 2024-09-11 | 2023-10-19 |
LAST_COMPILE
LAST_COMPILE |
---|
2024-11-05 |
Last
Code
%>%
hbs_str_t224 group_by(time) %>%
summarise(Nobs = n()) %>%
arrange(desc(time)) %>%
head(2) %>%
print_table_conditional()
time | Nobs |
---|---|
2020 | 9597 |
2015 | 11990 |
coicop
All
Code
%>%
hbs_str_t224 left_join(coicop, by = "coicop") %>%
group_by(coicop, Coicop) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
2-digit
Code
%>%
hbs_str_t224 filter(nchar(coicop) == 4) %>%
left_join(coicop, by = "coicop") %>%
group_by(coicop, Coicop) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
coicop | Coicop | Nobs |
---|---|---|
CP01 | Food and non-alcoholic beverages | 1145 |
CP02 | Alcoholic beverages, tobacco and narcotics | 1139 |
CP03 | Clothing and footwear | 1145 |
CP04 | Housing, water, electricity, gas and other fuels | 1139 |
CP05 | Furnishings, household equipment and routine household maintenance | 1139 |
CP06 | Health | 1142 |
CP07 | Transport | 1145 |
CP08 | Communications | 1145 |
CP09 | Recreation and culture | 1145 |
CP10 | Education | 1122 |
CP11 | Restaurants and hotels | 1145 |
CP12 | Miscellaneous goods and services | 1145 |
3-digit
Code
%>%
hbs_str_t224 filter(nchar(coicop) == 5) %>%
left_join(coicop, by = "coicop") %>%
group_by(coicop, Coicop) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
4-digit
Code
%>%
hbs_str_t224 filter(nchar(coicop) == 6) %>%
left_join(coicop, by = "coicop") %>%
group_by(coicop, Coicop) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
hhtyp
Code
%>%
hbs_str_t224 left_join(hhtyp, by = "hhtyp") %>%
group_by(hhtyp, Hhtyp) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
hhtyp | Hhtyp | Nobs |
---|---|---|
A1 | Single person | 10703 |
A1_DCH | Single person with dependent children | 10599 |
A2 | Two adults | 10749 |
A2_DCH | Two adults with dependent children | 10807 |
A_GE3 | Three or more adults | 10718 |
A_GE3_DCH | Three or more adults with dependent children | 10735 |
UNK | Unknown | 2054 |
geo
Code
%>%
hbs_str_t224 left_join(geo, by = "geo") %>%
group_by(geo, Geo) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
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 .} {
unit
Code
%>%
hbs_str_t224 group_by(unit) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
unit | Nobs |
---|---|
PM | 66365 |
time
Code
%>%
hbs_str_t224 group_by(time) %>%
summarise(Nobs = n()) %>%
print_table_conditional()
time | Nobs |
---|---|
1988 | 3440 |
1994 | 6773 |
1999 | 5227 |
2005 | 12842 |
2010 | 16496 |
2015 | 11990 |
2020 | 9597 |
France - Compare
2020, HBS
Code
%>%
hbs_str_t224 filter(time == "2020",
== "FR") %>%
geo left_join(coicop, by = "coicop") %>%
select_if(~ n_distinct(.) > 1) %>%
spread(hhtyp, values) %>%
select_if(~ n_distinct(.) > 1) %>%
print_table_conditional
2015, HBS
All
Code
%>%
hbs_str_t224 filter(time == "2015",
== "FR") %>%
geo left_join(coicop, by = "coicop") %>%
select_if(~ n_distinct(.) > 1) %>%
spread(hhtyp, values) %>%
select_if(~ n_distinct(.) > 1) %>%
print_table_conditional
2-digit
Code
%>%
hbs_str_t224 filter(time == "2015",
== "FR",
geo nchar(coicop) == 4) %>%
left_join(coicop, by = "coicop") %>%
select_if(~ n_distinct(.) > 1) %>%
spread(hhtyp, values) %>%
select_if(~ n_distinct(.) > 1) %>%
print_table_conditional
coicop | Coicop | A_GE3 | A_GE3_DCH | A1 | A1_DCH | A2 | A2_DCH |
---|---|---|---|---|---|---|---|
CP01 | Food and non-alcoholic beverages | 168 | 162 | 128 | 132 | 156 | 139 |
CP02 | Alcoholic beverages, tobacco and narcotics | 28 | 28 | 29 | 24 | 25 | 21 |
CP03 | Clothing and footwear | 35 | 46 | 32 | 57 | 32 | 48 |
CP04 | Housing, water, electricity, gas and other fuels | 261 | 243 | 366 | 281 | 283 | 251 |
CP05 | Furnishings, household equipment and routine household maintenance | 44 | 38 | 44 | 38 | 54 | 47 |
CP06 | Health | 11 | 12 | 16 | 17 | 16 | 16 |
CP07 | Transport | 168 | 151 | 99 | 127 | 139 | 143 |
CP08 | Communications | 25 | 27 | 26 | 30 | 21 | 23 |
CP09 | Recreation and culture | 66 | 70 | 76 | 77 | 77 | 80 |
CP10 | Education | 5 | 10 | 2 | 11 | 2 | 11 |
CP11 | Restaurants and hotels | 42 | 62 | 44 | 67 | 44 | 69 |
CP12 | Miscellaneous goods and services | 148 | 150 | 137 | 138 | 149 | 152 |
All quintiles
Sums
2-digit
Code
%>%
hbs_str_t224 filter(time == "2020",
substr(coicop, 1, 2) == "CP",
nchar(coicop) == 4) %>%
left_join(geo, by = "geo") %>%
select_if(~ n_distinct(.) > 1) %>%
group_by(hhtyp, geo, Geo) %>%
summarise(values = sum(values)) %>%
spread(hhtyp, values) %>%
print_table_conditional
geo | Geo | A_GE3 | A_GE3_DCH | A1 | A1_DCH | A2 | A2_DCH | UNK |
---|---|---|---|---|---|---|---|---|
AT | Austria | 1000 | 1002 | 1000 | 1000 | 1001 | 1000 | NA |
BE | Belgium | 1000 | 1000 | 1000 | 1000 | 1000 | 1001 | NA |
BG | Bulgaria | 1000 | 999 | 1001 | 1000 | 998 | 999 | NA |
CY | Cyprus | 1001 | 1000 | 999 | 1001 | 1002 | 1000 | NA |
CZ | Czechia | 999 | 997 | 999 | 1003 | 1001 | 1000 | NA |
DE | Germany | 1001 | 1000 | 1001 | 999 | 999 | 999 | NA |
DK | Denmark | 1000 | 1001 | 999 | 1000 | 999 | 999 | NA |
EE | Estonia | 1000 | 1001 | 1001 | 1000 | 1000 | 1000 | NA |
EL | Greece | 1000 | 999 | 999 | 1000 | 1000 | 1000 | NA |
ES | Spain | 1000 | 1001 | 999 | 1000 | 1001 | 1000 | NA |
EU27_2020 | European Union - 27 countries (from 2020) | 1000 | 1000 | 1001 | 1001 | 1001 | 999 | NA |
FI | Finland | 1002 | 1000 | 1000 | 1001 | 999 | 1002 | NA |
FR | France | 1001 | 999 | 999 | 999 | 998 | 1000 | NA |
HR | Croatia | 1000 | 1000 | 998 | 1000 | 1000 | 1000 | NA |
HU | Hungary | 1000 | 1000 | 1001 | 1000 | 1000 | 1001 | NA |
IT | Italy | 998 | 999 | 1001 | 999 | 1000 | 999 | NA |
LT | Lithuania | 1002 | 998 | 1001 | 1000 | 999 | 1001 | NA |
LU | Luxembourg | 997 | 1000 | 1001 | 1000 | 1001 | 1000 | NA |
LV | Latvia | 999 | 999 | 1000 | 1001 | 999 | 1000 | NA |
ME | Montenegro | 1000 | 1000 | 1001 | 1000 | 1000 | 1000 | NA |
MT | Malta | 1000 | 999 | 1001 | 1001 | 1000 | 999 | NA |
NL | Netherlands | 1001 | 1000 | 999 | 999 | 1002 | 1000 | NA |
PL | Poland | 1000 | 999 | 1000 | 1000 | 999 | 1002 | NA |
PT | Portugal | 1001 | 999 | 1001 | 999 | 1000 | 999 | NA |
RO | Romania | 1001 | 1000 | 999 | 1001 | 1000 | 999 | NA |
RS | Serbia | 1000 | 998 | 999 | 1000 | 1000 | 1001 | NA |
SI | Slovenia | 999 | 1000 | 1001 | 999 | 1001 | 1001 | NA |
SK | Slovakia | 999 | 1002 | 999 | 1000 | 1001 | 1000 | NA |
TR | Türkiye | 999 | 1000 | 1001 | 1001 | 1000 | 1000 | NA |
3-digit
Code
%>%
hbs_str_t224 filter(time == "2020",
substr(coicop, 1, 2) == "CP",
nchar(coicop) == 5) %>%
left_join(geo, by = "geo") %>%
select_if(~ n_distinct(.) > 1) %>%
group_by(hhtyp, geo, Geo) %>%
summarise(values = sum(values)) %>%
spread(hhtyp, values) %>%
print_table_conditional
geo | Geo | A_GE3 | A_GE3_DCH | A1 | A1_DCH | A2 | A2_DCH | UNK |
---|---|---|---|---|---|---|---|---|
AT | Austria | 1001 | 999 | 998 | 999 | 997 | 1000 | NA |
BE | Belgium | 1000 | 1001 | 997 | 999 | 1000 | 997 | NA |
BG | Bulgaria | 998 | 999 | 998 | 997 | 1000 | 1003 | NA |
CY | Cyprus | 996 | 997 | 1001 | 996 | 997 | 993 | NA |
CZ | Czechia | 1002 | 1003 | 999 | 997 | 998 | 997 | NA |
DE | Germany | 984 | 986 | 994 | 990 | 990 | 992 | NA |
DK | Denmark | 1000 | 997 | 999 | 1001 | 1004 | 1002 | NA |
EE | Estonia | 990 | 996 | 976 | 983 | 986 | 991 | NA |
EL | Greece | 1004 | 999 | 1001 | 1000 | 997 | 1002 | NA |
ES | Spain | 1001 | 1003 | 998 | 1001 | 1001 | 995 | NA |
FI | Finland | 984 | 983 | 982 | 974 | 979 | 976 | NA |
FR | France | 994 | 987 | 992 | 994 | 989 | 986 | NA |
HR | Croatia | 999 | 997 | 998 | 1004 | 994 | 1001 | NA |
HU | Hungary | 1000 | 1001 | 1000 | 998 | 999 | 999 | NA |
IT | Italy | 1002 | 1000 | 1001 | 997 | 998 | 1001 | NA |
LT | Lithuania | 998 | 999 | 997 | 999 | 1000 | 998 | NA |
LU | Luxembourg | 1003 | 997 | 1000 | 1000 | 999 | 999 | NA |
LV | Latvia | 1000 | 997 | 1000 | 998 | 998 | 998 | NA |
ME | Montenegro | 983 | 982 | 987 | 991 | 980 | 984 | NA |
MT | Malta | 998 | 999 | 996 | 999 | 1001 | 1001 | NA |
NL | Netherlands | 1001 | 997 | 1000 | 1001 | 1000 | 1001 | NA |
PL | Poland | 998 | 1000 | 1001 | 999 | 999 | 1000 | NA |
RS | Serbia | 1000 | 1000 | 997 | 1002 | 999 | 999 | NA |
SI | Slovenia | 998 | 1000 | 1000 | 1003 | 997 | 1001 | NA |
SK | Slovakia | 1000 | 998 | 1002 | 997 | 995 | 996 | NA |
TR | Türkiye | 1000 | 999 | 1002 | 1001 | 1000 | 999 | NA |
CP041, CP042, CP041_042
2015
France
Code
%>%
hbs_str_t224 filter(coicop %in% c("CP041", "CP042"),
== "2015",
time %in% c("FR")) %>%
geo spread(coicop, values) %>%
mutate(CP041_042 = CP041 + CP042) %>%
gather(coicop, values, CP041, CP042, CP041_042) %>%
left_join(geo, by = "geo") %>%
left_join(coicop, by = "coicop") %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(Coicop = ifelse(coicop == "CP041_042", "Imputed rentals plus actual rentals", Coicop),
hhtyp = ifelse(hhtyp == "Y_GE60", "Y60+", hhtyp),
hhtyp = ifelse(hhtyp == "Y_LT30", "Y30-", hhtyp)) %>%
+ geom_line(aes(x = hhtyp, y = values/1000, color = Coicop, group = Coicop)) +
ggplot theme_minimal() +
xlab("") + ylab("Weight in CPI") +
scale_y_continuous(breaks = 0.01*seq(-30, 50, 2),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.2, 0.9),
legend.title = element_blank())