Cleaning Process for Final Project
I am starting with data downloaded from Bloomberg Terminal on volumn,
AUM, and fund flow of ESG ETFs and Energy related thematic ETFs like
clean energy ETF and EV ETF.
I dowloaded 6 separate excel files from Bloomberg and plan to clean
them respectively. I have already cleaned the first 2 data sets below
using different methods we learned in class.
- ESG ETF $ Volumn Cleaning Process
# Load required libraries
library(readxl)
library(dplyr)
library(tidyr)
# Import data from Excel file
data <- read_excel("/Users/hahazhou/Desktop/Final Project/00_data_raw/Volume_ESG.xlsx", sheet = "BIData")
# Transform second column to first 4 letters
data$Ticker <- substr(data$Ticker, 1, 4)
# Transform to long format
Volume_ESG_Cleaned <- data %>%
pivot_longer(cols = starts_with("2"), names_to = "Year", values_to = "Volume") %>%
mutate(Year = gsub("X", "", Year)) %>%
select(Description, Ticker, Year, Volume)
# Save the cleaned data to the specified location
write.csv(Volume_ESG_Cleaned, "/Users/hahazhou/Desktop/Final Project/03_data_processed/Volume_ESG_Cleaned.csv")
- Thematic ETF $ Volumn Cleaning Process
# Import required libraries
library(readxl)
library(dplyr)
library(tidyr)
# Read data from Excel file
data1 <- read_excel("/Users/hahazhou/Desktop/Final Project/00_data_raw/Volume_Thematic ETF.xlsx",
sheet = "BIData", range = "A2:AA34")
data2 <- read_excel("/Users/hahazhou/Desktop/Final Project/00_data_raw/Volume_Thematic ETF.xlsx",
sheet = "BIData", range = "A35:AA51")
data3 <- read_excel("/Users/hahazhou/Desktop/Final Project/00_data_raw/Volume_Thematic ETF.xlsx",
sheet = "BIData", range = "A52:AA61")
# Transform data
Thematic_Clean_Energy <- data1 %>%
mutate(Ticker = substr(Ticker, 1, 4)) %>%
pivot_longer(cols = -c(Description, Ticker), names_to = "Year", values_to = "Volume")
Thematic_Natural_Resources <- data2 %>%
mutate(Ticker = substr(Ticker, 1, 4)) %>%
pivot_longer(cols = -c(Description, Ticker), names_to = "Year", values_to = "Volume")
Thematic_Electric_Car_Battery <- data3 %>%
mutate(Ticker = substr(Ticker, 1, 4)) %>%
pivot_longer(cols = -c(Description, Ticker), names_to = "Year", values_to = "Volume")
# Combine datasets
Volume_Thematic_Cleaned <- bind_rows(Thematic_Clean_Energy, Thematic_Natural_Resources, Thematic_Electric_Car_Battery)
# Save the cleaned data
write.csv(Volume_Thematic_Cleaned, "/Users/hahazhou/Desktop/Final Project/03_data_processed/Volume_Thematic_Cleaned.csv")
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKQ2xlYW5pbmcgUHJvY2VzcyBmb3IgRmluYWwgUHJvamVjdAoKSSBhbSBzdGFydGluZyB3aXRoIGRhdGEgZG93bmxvYWRlZCBmcm9tIEJsb29tYmVyZyBUZXJtaW5hbCBvbiB2b2x1bW4sIEFVTSwgYW5kIGZ1bmQgZmxvdyBvZiBFU0cgRVRGcyBhbmQgRW5lcmd5IHJlbGF0ZWQgdGhlbWF0aWMgRVRGcyBsaWtlIGNsZWFuIGVuZXJneSBFVEYgYW5kIEVWIEVURi4gCgpJIGRvd2xvYWRlZCA2IHNlcGFyYXRlIGV4Y2VsIGZpbGVzIGZyb20gQmxvb21iZXJnIGFuZCBwbGFuIHRvIGNsZWFuIHRoZW0gcmVzcGVjdGl2ZWx5LiBJIGhhdmUgYWxyZWFkeSBjbGVhbmVkIHRoZSBmaXJzdCAyIGRhdGEgc2V0cyBiZWxvdyB1c2luZyBkaWZmZXJlbnQgbWV0aG9kcyB3ZSBsZWFybmVkIGluIGNsYXNzLiAKCjEuIEVTRyBFVEYgJCBWb2x1bW4gQ2xlYW5pbmcgUHJvY2VzcwpgYGB7cn0KCiMgTG9hZCByZXF1aXJlZCBsaWJyYXJpZXMKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCgojIEltcG9ydCBkYXRhIGZyb20gRXhjZWwgZmlsZQpkYXRhIDwtIHJlYWRfZXhjZWwoIi9Vc2Vycy9oYWhhemhvdS9EZXNrdG9wL0ZpbmFsIFByb2plY3QvMDBfZGF0YV9yYXcvVm9sdW1lX0VTRy54bHN4Iiwgc2hlZXQgPSAiQklEYXRhIikKCiMgVHJhbnNmb3JtIHNlY29uZCBjb2x1bW4gdG8gZmlyc3QgNCBsZXR0ZXJzCmRhdGEkVGlja2VyIDwtIHN1YnN0cihkYXRhJFRpY2tlciwgMSwgNCkKCiMgVHJhbnNmb3JtIHRvIGxvbmcgZm9ybWF0ClZvbHVtZV9FU0dfQ2xlYW5lZCA8LSBkYXRhICU+JQogIHBpdm90X2xvbmdlcihjb2xzID0gc3RhcnRzX3dpdGgoIjIiKSwgbmFtZXNfdG8gPSAiWWVhciIsIHZhbHVlc190byA9ICJWb2x1bWUiKSAlPiUKICBtdXRhdGUoWWVhciA9IGdzdWIoIlgiLCAiIiwgWWVhcikpICU+JQogIHNlbGVjdChEZXNjcmlwdGlvbiwgVGlja2VyLCBZZWFyLCBWb2x1bWUpCgojIFNhdmUgdGhlIGNsZWFuZWQgZGF0YSAKd3JpdGUuY3N2KFZvbHVtZV9FU0dfQ2xlYW5lZCwgIi9Vc2Vycy9oYWhhemhvdS9EZXNrdG9wL0ZpbmFsIFByb2plY3QvMDNfZGF0YV9wcm9jZXNzZWQvVm9sdW1lX0VTR19DbGVhbmVkLmNzdiIpCmBgYAoKMi4gVGhlbWF0aWMgRVRGICQgVm9sdW1uIENsZWFuaW5nIFByb2Nlc3MKYGBge3J9CgojIEltcG9ydCByZXF1aXJlZCBsaWJyYXJpZXMKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCgojIFJlYWQgZGF0YSBmcm9tIEV4Y2VsIGZpbGUKZGF0YTEgPC0gcmVhZF9leGNlbCgiL1VzZXJzL2hhaGF6aG91L0Rlc2t0b3AvRmluYWwgUHJvamVjdC8wMF9kYXRhX3Jhdy9Wb2x1bWVfVGhlbWF0aWMgRVRGLnhsc3giLCAKICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJCSURhdGEiLCByYW5nZSA9ICJBMjpBQTM0IikKZGF0YTIgPC0gcmVhZF9leGNlbCgiL1VzZXJzL2hhaGF6aG91L0Rlc2t0b3AvRmluYWwgUHJvamVjdC8wMF9kYXRhX3Jhdy9Wb2x1bWVfVGhlbWF0aWMgRVRGLnhsc3giLCAKICAgICAgICAgICAgICAgICAgICBzaGVldCA9ICJCSURhdGEiLCByYW5nZSA9ICJBMzU6QUE1MSIpCmRhdGEzIDwtIHJlYWRfZXhjZWwoIi9Vc2Vycy9oYWhhemhvdS9EZXNrdG9wL0ZpbmFsIFByb2plY3QvMDBfZGF0YV9yYXcvVm9sdW1lX1RoZW1hdGljIEVURi54bHN4IiwgCiAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAiQklEYXRhIiwgcmFuZ2UgPSAiQTUyOkFBNjEiKQoKIyBUcmFuc2Zvcm0gZGF0YQpUaGVtYXRpY19DbGVhbl9FbmVyZ3kgPC0gZGF0YTEgJT4lCiAgbXV0YXRlKFRpY2tlciA9IHN1YnN0cihUaWNrZXIsIDEsIDQpKSAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IC1jKERlc2NyaXB0aW9uLCBUaWNrZXIpLCBuYW1lc190byA9ICJZZWFyIiwgdmFsdWVzX3RvID0gIlZvbHVtZSIpCgpUaGVtYXRpY19OYXR1cmFsX1Jlc291cmNlcyA8LSBkYXRhMiAlPiUKICBtdXRhdGUoVGlja2VyID0gc3Vic3RyKFRpY2tlciwgMSwgNCkpICU+JQogIHBpdm90X2xvbmdlcihjb2xzID0gLWMoRGVzY3JpcHRpb24sIFRpY2tlciksIG5hbWVzX3RvID0gIlllYXIiLCB2YWx1ZXNfdG8gPSAiVm9sdW1lIikKClRoZW1hdGljX0VsZWN0cmljX0Nhcl9CYXR0ZXJ5IDwtIGRhdGEzICU+JQogIG11dGF0ZShUaWNrZXIgPSBzdWJzdHIoVGlja2VyLCAxLCA0KSkgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSAtYyhEZXNjcmlwdGlvbiwgVGlja2VyKSwgbmFtZXNfdG8gPSAiWWVhciIsIHZhbHVlc190byA9ICJWb2x1bWUiKQoKIyBDb21iaW5lIGRhdGFzZXRzClZvbHVtZV9UaGVtYXRpY19DbGVhbmVkIDwtIGJpbmRfcm93cyhUaGVtYXRpY19DbGVhbl9FbmVyZ3ksIFRoZW1hdGljX05hdHVyYWxfUmVzb3VyY2VzLCBUaGVtYXRpY19FbGVjdHJpY19DYXJfQmF0dGVyeSkKCiMgU2F2ZSB0aGUgY2xlYW5lZCBkYXRhIAp3cml0ZS5jc3YoVm9sdW1lX1RoZW1hdGljX0NsZWFuZWQsICIvVXNlcnMvaGFoYXpob3UvRGVza3RvcC9GaW5hbCBQcm9qZWN0LzAzX2RhdGFfcHJvY2Vzc2VkL1ZvbHVtZV9UaGVtYXRpY19DbGVhbmVkLmNzdiIpCmBgYAoK