Final Report 1

library(readxl)
library(ggplot2)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(scales)
library(ggthemes)
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ lubridate 1.9.2     ✔ tibble    3.2.1
✔ purrr     1.0.2     ✔ tidyr     1.3.0
✔ readr     2.1.4     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ readr::col_factor() masks scales::col_factor()
✖ purrr::discard()    masks scales::discard()
✖ dplyr::filter()     masks stats::filter()
✖ dplyr::lag()        masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(pkgdown)
library(esquisse)
library(tidyr)
library(readxl)
Fossil_fuel_consumption_subsidies_2010_2022 <- read_excel("/Users/sherri/downloads/Fossil fuel consumption subsidies, 2010-2022.xlsx")

countries_of_interest <- c("Cambodia", "China","Hong Kong SAR, China", "Indonesia", "Korea", "Laos", "Malaysia","Mongolia", "Myanmar", "Philippines", "Samoa", "Singapore", "Thailand", "Taipei", "Vietnam")

filtered_data <- Fossil_fuel_consumption_subsidies_2010_2022 %>%
  filter(Country %in% countries_of_interest)

data_long <- filtered_data %>% 
  gather(key = "Year", value = "Value", -Country, -Product)

summary_data <- data_long %>% 
  group_by(Country, Product) %>% 
  summarise(Total = sum(Value, na.rm = TRUE))
`summarise()` has grouped output by 'Country'. You can override using the
`.groups` argument.
China <- c("China")

China_subsidies_data <- Fossil_fuel_consumption_subsidies_2010_2022 %>%
  filter(Country %in% China)

China_subsidies_data_long <- China_subsidies_data %>% 
  gather(key = "Year", value = "Value", -Country, -Product)

China_subsidies_data_long_product <- China_subsidies_data_long[China_subsidies_data_long$Product != "Total", ]

ggplot(China_subsidies_data_long_product, aes(x = Year, y = Value, color = Product, group = Product)) +
  geom_line() +
  geom_point() +
  theme_minimal() +
  labs(title = "Energy Product Trends in China", 
       x = "Year", 
       y = "Value", 
       color = "Product")

total_China_subsidies_data_long <- China_subsidies_data_long[China_subsidies_data_long$Product == "Total", ]

ggplot(total_China_subsidies_data_long, aes(x = Year, y = Value, group = 1)) +
  geom_line() +
  geom_point() +
  theme_minimal() +
  labs(title = "Total Fossil Subsidies in China", 
       x = "Year", 
       y = "Total Value")

National_Fossil_Carbon_Emissions <- read_excel("~/Downloads/National_Fossil_Carbon_Emissions_2022v1.0.xlsx", 
sheet = "Territorial Emissions Edited")

Emission_Data <- National_Fossil_Carbon_Emissions[c("Year","China", "Asia", "World")]

Emissions_Data <- Emission_Data %>%
  mutate(OtherRegions = World - Asia)

Emissions_Data <- Emissions_Data %>%
  mutate(ShareOfChina = (China / World) * 100)
Emissions_Data_long <- gather(Emissions_Data, key = "Region", value = "Emissions", -Year)

emissions_data <- Emissions_Data_long %>%
  filter(Region %in% c("China", "Asia"))

share_of_china_data <- Emissions_Data_long %>%
  filter(Region == "ShareOfChina") %>%
  mutate(Emissions = Emissions * 100) 

p <- ggplot() +
  geom_bar(data = emissions_data, aes(x = Year, y = Emissions, fill = Region), stat = "identity", position = "dodge") +
  geom_line(data = share_of_china_data, aes(x = Year, y = Emissions, group = 1), color = "green", size = 1) +
  scale_fill_manual(values = c("China" = "blue", "Asia" = "red")) +
  labs(
    x = "Year",
    y = "Emissions (Millions of metric tons of CO2 equivalent)",
    title = "Global Trends in Carbon Emissions",
    fill = "Region"
  ) +
  theme_minimal()
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
p <- p + scale_y_continuous(
  name = "Emissions",
  sec.axis = sec_axis(~./100, name="Share of China (percentage)"), 
  limits = c(0, max(Emissions_Data_long$Emissions)) 
)

print(p)

Carbon_Emissions_Instrument <- read_excel("~/Downloads/Carbon_Emissions_Instrument.xlsx", sheet = "Compliance_Emissions_Edited")

Beijing_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Beijing pilot ETS") %>%
  select(`2000`:`2023`)

Beijing_ets_data <- Beijing_ets_data %>%
  mutate(Instrument = "Beijing pilot ETS") %>%
  select(Instrument, everything())

Tianjin_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Tianjin pilot ETS") %>%
  select(`2000`:`2023`)

Tianjin_ets_data <- Tianjin_ets_data %>%
  mutate(Instrument = "Tianjin pilot ETS") %>%
  select(Instrument, everything())

Shanghai_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Shanghai pilot ETS") %>%
  select(`2000`:`2023`)

Shanghai_ets_data <- Shanghai_ets_data %>%
  mutate(Instrument = "Shanghai pilot ETS") %>%
  select(Instrument, everything())

Hubei_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Hubei pilot ETS") %>%
  select(`2000`:`2023`)

Hubei_ets_data <- Hubei_ets_data %>%
  mutate(Instrument = "Hubei pilot ETS") %>%
  select(Instrument, everything())

Chongqing_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Chongqing pilot ETS") %>%
  select(`2000`:`2023`)

Chongqing_ets_data <- Chongqing_ets_data %>%
  mutate(Instrument = "Chongqing pilot ETS") %>%
  select(Instrument, everything())

Fujian_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Fujian pilot ETS") %>%
  select(`2000`:`2023`)

Fujian_ets_data <- Fujian_ets_data %>%
  mutate(Instrument = "Fujian pilot ETS") %>%
  select(Instrument, everything())

Shenzhen_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Shenzhen pilot ETS") %>%
  select(`2000`:`2023`)

Shenzhen_ets_data <- Shenzhen_ets_data %>%
  mutate(Instrument = "Shenzhen pilot ETS") %>%
  select(Instrument, everything())

Guangdong_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Guangdong pilot ETS") %>%
  select(`2000`:`2023`)

Guangdong_ets_data <- Guangdong_ets_data %>%
  mutate(Instrument = "Guangdong pilot ETS") %>%
  select(Instrument, everything())

china_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "China national ETS") %>%
  select(`2000`:`2023`)

china_ets_data <- china_ets_data %>%
  mutate(Instrument = "China National ETS") %>%
  select(Instrument, everything())

world_ets_data <- Carbon_Emissions_Instrument %>%
  filter(`Name of the initiative` == "Total") %>%
  select(`2000`:`2023`)

world_ets_data <- world_ets_data %>%
  mutate(Instrument = "World Total") %>%
  select(Instrument, everything())

instrument_data <- bind_rows(china_ets_data,Beijing_ets_data,Tianjin_ets_data,Shanghai_ets_data,Hubei_ets_data,Chongqing_ets_data,Fujian_ets_data,Shenzhen_ets_data,Guangdong_ets_data, world_ets_data)

regional_ets_data <- instrument_data %>%
  filter(Instrument %in% c("Beijing pilot ETS", "Tianjin pilot ETS", "Shanghai pilot ETS",
                           "Hubei pilot ETS", "Chongqing pilot ETS", "Fujian pilot ETS",
                           "Shenzhen pilot ETS", "Guangdong pilot ETS"))

regional_ets_total <- regional_ets_data %>%
  select(-Instrument) %>%
  summarise(across(everything(), ~sum(.x, na.rm = TRUE)))

regional_ets_total <- regional_ets_total %>%
  mutate(Instrument = "Regional ETS") %>%
  select(Instrument, everything())

China_world_data <- bind_rows(Beijing_ets_data,Tianjin_ets_data,Shanghai_ets_data,Hubei_ets_data,Chongqing_ets_data,Fujian_ets_data,Shenzhen_ets_data,Guangdong_ets_data,regional_ets_total,china_ets_data, world_ets_data)

China_world_data <- China_world_data %>%
  mutate(across(everything(), ~ifelse(is.na(.x), 0, .x)))

years_to_remove <- as.character(2000:2012) 
China_world_data <- China_world_data %>%
  select(-all_of(years_to_remove))
China_ETS <- filter(China_world_data, Instrument == "China National ETS")
Regional_ETS <- filter(China_world_data, Instrument == "Regional ETS")
World_Total <- filter(China_world_data, Instrument == "World Total")

China_ETS_long <- pivot_longer(China_ETS, cols = `2013`:`2023`, names_to = "Year", values_to = "Emissions")
Regional_ETS_long <- pivot_longer(Regional_ETS, cols = `2013`:`2023`, names_to = "Year", values_to = "Emissions")
World_Total_long <- pivot_longer(World_Total, cols = `2013`:`2023`, names_to = "Year", values_to = "Emissions")

proportion_data <- left_join(China_ETS_long, Regional_ETS_long, by = "Year", suffix = c("_China", "_Regional")) %>%
  left_join(World_Total_long, by = "Year") %>%
  mutate(
    Proportion_China = Emissions_China / Emissions,
    Proportion_Regional = Emissions_Regional / Emissions
  ) %>%
  select(Year, Proportion_China, Proportion_Regional)


proportion_data_long <- pivot_longer(
  proportion_data,
  cols = c("Proportion_China", "Proportion_Regional"),
  names_to = "ETS_Type",
  values_to = "Proportion"
)

proportion_data_long <- proportion_data_long %>%
  mutate(Year = as.numeric(Year))

ggplot(proportion_data_long, aes(x = Year, y = Proportion, color = ETS_Type, group = ETS_Type)) +
  geom_line() +
  scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) + # Ensure x-axis is continuous and has nice breaks
  scale_y_continuous(labels = scales::percent_format()) + # Convert to percentage for the y-axis
  theme_minimal() +
  labs(title = "Proportion of China National and Regional ETS Emission to World Total",
       x = "Year",
       y = "Proportion (%)",
       color = "ETS Type")