## ----setupknitr, include=FALSE, message=FALSE--------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ## ----setup, message=FALSE---------------------------------------------------- library(iotables) library(dplyr, quietly = T) library(tidyr, quietly = T) ## ----iotables----------------------------------------------------------------- germany_io <- iotable_get( labelling = "iotables" ) input_flow <- input_flow_get ( data_table = germany_io, households = FALSE) de_output <- primary_input_get ( germany_io, "output" ) print (de_output[c(1:4)]) ## ----inputcoeff, echo=TRUE---------------------------------------------------- de_input_coeff <- input_coefficient_matrix_create( data_table = germany_io, digits = 4) ## which is equivalent to: de_input_coeff <- coefficient_matrix_create( data_table = germany_io, total = "output", return_part = "products", households = FALSE, digits = 4) print (de_input_coeff[1:3, 1:3]) ## ----outputcoeff, echo=FALSE-------------------------------------------------- de_out <- output_coefficient_matrix_create ( data_table = germany_io, total = 'tfu', digits = 4) # Rounding is slightly different in the Eurostat manual: print(de_out[1:3, 1:3]) ## ----leontief----------------------------------------------------------------- L_de <- leontief_matrix_create ( technology_coefficients_matrix = de_input_coeff ) I_de <- leontief_inverse_create(de_input_coeff) I_de_4 <- leontief_inverse_create(technology_coefficients_matrix=de_input_coeff, digits = 4) print (I_de_4[,1:3]) ## ----employment_indicator----------------------------------------------------- de_emp <- primary_input_get(germany_io, primary_input = "employment_domestic_total") de_emp_indicator <- input_indicator_create( data_table = germany_io, input_row = "employment_domestic_total") vector_transpose_longer(de_emp_indicator) ## ----gva_indicator------------------------------------------------------------ de_gva <- primary_input_get ( germany_io, primary_input = "gva") de_gva_indicator <- input_indicator_create( data_table = germany_io, input_row = "gva") vector_transpose_longer(de_gva_indicator) ## ----input_indicator---------------------------------------------------------- direct_effects_de <- coefficient_matrix_create( data_table = germany_io, total = 'output', return_part = 'primary_inputs') direct_effects_de[1:6,1:4] ## ----inputmultipliers--------------------------------------------------------- input_reqr <- coefficient_matrix_create( data_table = iotable_get(), total = 'output', return_part = 'primary_inputs') multipliers <- input_multipliers_create( input_requirements = input_reqr, Im = I_de) multipliers ## ----employment_multiplier---------------------------------------------------- de_emp_indicator <- input_indicator_create ( data_table = germany_io, input = 'employment_domestic_total') employment_multipliers <- multiplier_create ( input_vector = de_emp_indicator, Im = I_de, multiplier_name = "employment_multiplier", digits = 4 ) vector_transpose_longer(employment_multipliers, values_to="employment_multipliers") ## ----outputmult--------------------------------------------------------------- de_input_coeff <- input_coefficient_matrix_create( data_table = iotable_get(), digits = 4) output_multipliers <- output_multiplier_create (input_coefficient_matrix = de_input_coeff) vector_transpose_longer(output_multipliers, values_to = "output_multipliers") ## ----backward----------------------------------------------------------------- de_coeff <- input_coefficient_matrix_create(iotable_get(), digits = 4) I_de <- leontief_inverse_create (de_coeff) vector_transpose_longer(backward_linkages(I_de), values_to = "backward_linkage_strength") ## ----ghoshinverse------------------------------------------------------------- de_out <- output_coefficient_matrix_create( data_table = germany_io, total = "final_demand", digits = 4 ) ghosh_inverse_create(de_out, digits = 4)[,1:4] ## ----forwardlinkages---------------------------------------------------------- forward_linkages(output_coefficient_matrix = de_out) ## ----emissions---------------------------------------------------------------- data("germany_airpol") emissions_de <- germany_airpol[, -3] %>% vector_transpose_wider(names_from = "iotables_col", values_from = "value") ## ----emissionsprint----------------------------------------------------------- emissions_de ## ----outputbp----------------------------------------------------------------- output_bp <- output_get(germany_io) ## ----emmissioncoeffs---------------------------------------------------------- emission_coeffs <- germany_io %>% supplementary_add(emissions_de) %>% input_indicator_create(input_row = as.character(emissions_de$airpol), digits = 4) ## ----emmissioncoeffsprint----------------------------------------------------- emission_coeffs[-1, 1:3] ## ----CO2multiplier------------------------------------------------------------ multiplier_create( input_vector = emission_coeffs[2,], Im = I_de, multiplier_name = "CO2_multiplier", digits = 4 ) ## ----emissionmultipliers------------------------------------------------------ names(emission_coeffs)[1] <- names(I_de)[1] emission_multipliers <- cbind ( key_column_create(names(emission_coeffs)[1], gsub("_indicator", "_multiplier", unlist(emission_coeffs[-1,1]))), do.call( rbind, lapply ( 2:nrow(emission_coeffs), function(x) equation_solve(emission_coeffs[x, ], I_de) ) ) %>% as.data.frame() ) emission_multipliers[, -1] <- round(emission_multipliers[, -1], 4) emission_multipliers[1:3,1:4] ## ----finaldemand-------------------------------------------------------------- final_demand <- rowSums(germany_io[1:6, 9:13]) ## ----emissioncontent---------------------------------------------------------- emission_content <- as.data.frame( round(as.matrix(emission_multipliers[1:3, -1]) %*% diag(final_demand), 0) ) names(emission_content) <- names(emission_multipliers[,-1]) emission_content <- data.frame ( iotables_row = gsub("_multiplier", "_content", emission_multipliers[1:3,1]) ) %>% cbind(emission_content ) emission_content[,1:4]