Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- title: "Project 3"
- author: "Ruru Group E"
- date: "2024-08-03"
- output: html_document
- ---
- ```{r setup, include=FALSE}
- knitr::opts_chunk$set(echo = TRUE)
- library(readxl)
- library(dplyr)
- library(ggplot2)
- ```
- ```{r}
- vehicles <- read.csv("VehicleYear-2024.csv")
- auckland_vehicles <- vehicles %>%
- filter(TLA == "AUCKLAND")
- auckland_vehicles <- auckland_vehicles %>%
- mutate(Fuel_Type = case_when(
- grepl("PETROL HYBRID|PLUGIN PETROL HYBRID", MOTIVE_POWER, ignore.case = TRUE) ~ "Petrol_Hybrid",
- grepl("PETROL", MOTIVE_POWER, ignore.case = TRUE) ~ "Petrol",
- grepl("DIESEL", MOTIVE_POWER, ignore.case = TRUE) ~ "Diesel",
- TRUE ~ "Other"
- ))
- auckland_vehicles <- auckland_vehicles %>%
- mutate(CO2_Emissions_g_per_km = case_when(
- Fuel_Type == "Petrol" ~ (8.5 * 2.3 * 1000) / 100, # Convert to g/km
- Fuel_Type == "Diesel" ~ (6.5 * 2.7 * 1000) / 100, # Convert to g/km
- Fuel_Type == "Petrol_Hybrid" ~ (4.0 * 2.3 * 1000) / 100, # Convert to g/km
- TRUE ~ NA_real_
- ))
- auckland_vehicles <- auckland_vehicles %>%
- mutate(CO2_Emissions_g_per_passenger_km = CO2_Emissions_g_per_km / 1.5)
- average_auckland_co2_emissions <- auckland_vehicles %>%
- filter(Fuel_Type %in% c("Petrol", "Diesel", "Petrol_Hybrid")) %>%
- group_by(Fuel_Type) %>%
- summarise(Average_CO2_Emissions_g_per_passenger_km = mean(CO2_Emissions_g_per_passenger_km, na.rm = TRUE)) %>%
- mutate(Model = paste("Car (", Fuel_Type, ")", sep = "")) %>%
- select(Model, Average_CO2_Emissions_g_per_passenger_km)
- Make <- c("BMW", "CHEVROLET", "CHEVROLET", "NISSAN", "MITSUBISHI", "SKODA", "SKODA", "TOYOTA", "TOYOTA", "FORD", "HONDA")
- Model <- c("316I", "OPTRA", "NULL", "SUNNY", "LANCER", "OCTAVIA", "OCTAVIA", "COROLLA", "COROLLA", "RANGER", "CR-V")
- Condition <- c("Used", "Used", "Used", "Not Specified", "Used", "Used", "Used", "New", "New", "New", "NULL")
- Body_Type <- c("S.WAGON", "SALOON", "S.WAGON", "SALOON", "SALOON", "SALOON", "SALOON", "S.WAGON", "SALOON", "VAN", "S.WAGON")
- Engine_CC <- c(1596, 1799, 1799, 1970, 1600, 1800, 1800, 1970, 2000, 2500, 1970)
- Fuel_Type <- c("Petrol", "Petrol", "Petrol", "Diesel", "Diesel", "Diesel", "Diesel", "Diesel", "Petrol", "Petrol", "Diesel")
- Model_Year <- c(1989, 2005, 2005, 1998, 1998, 2004, 2005, 1998, 2005, 2005, 1998)
- Registration_Date <- c(2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005)
- L_per_100km <- c(7.5, 6.2, 6.2, 6.6, 6.9, 7.0, 7.0, 7.0, 8.0, 7.0, 9.3)
- CO2 <- c(176, 145, 145, 177, 185, 188, 188, 188, 188, 170, 217)
- bus_data <- data.frame(Make, Model, Condition, Body_Type, Engine_CC, Fuel_Type, Model_Year, Registration_Date, L_per_100km, CO2)
- filtered_buses <- bus_data %>%
- filter(Fuel_Type %in% c("Petrol", "Diesel"))
- filtered_buses <- filtered_buses %>%
- mutate(CO2_Emissions_g_per_passenger_km = CO2 / 30)
- average_bus_co2_emissions <- filtered_buses %>%
- group_by(Fuel_Type) %>%
- summarise(Average_CO2_Emissions_g_per_passenger_km = mean(CO2_Emissions_g_per_passenger_km, na.rm = TRUE)) %>%
- mutate(Model = paste("Bus (", Fuel_Type, ")", sep = "")) %>%
- select(Model, Average_CO2_Emissions_g_per_passenger_km)
- scooter_data <- data.frame(
- Model = c("Gen 2.5", "Gen 3.0"),
- Battery_Capacity_Ah = c(9.6, 15.9),
- Range_km = c(22, 40),
- Voltage_V = 36,
- CO2_Emissions_per_kWh = 500 # g/kWh
- )
- scooter_data <- scooter_data %>%
- mutate(Battery_Capacity_kWh = (Battery_Capacity_Ah * Voltage_V) / 1000)
- scooter_data <- scooter_data %>%
- mutate(Consumption_per_km_kWh = Battery_Capacity_kWh / Range_km)
- scooter_data <- scooter_data %>%
- mutate(CO2_Emissions_per_km_g = Consumption_per_km_kWh * CO2_Emissions_per_kWh)
- average_scooter_emissions <- scooter_data %>%
- summarise(Average_CO2_Emissions_g_per_km = mean(CO2_Emissions_per_km_g))
- electric_scooter_data <- data.frame(
- Model = "Electric Scooters",
- Average_CO2_Emissions_g_per_passenger_km = average_scooter_emissions$Average_CO2_Emissions_g_per_km
- )
- other_modes_data <- data.frame(
- Model = c("Walking", "Biking"),
- Average_CO2_Emissions_g_per_passenger_km = c(0, 0)
- )
- final_data <- bind_rows(
- average_auckland_co2_emissions,
- average_bus_co2_emissions,
- electric_scooter_data,
- other_modes_data
- )
- print(final_data)
- ```
- ```{r}
- data <- data.frame(
- Mode_of_Transport = c('Car (Diesel)', 'Car (Petrol)', 'Car (Petrol_Hybrid)', 'Bus (Diesel)', 'Bus (Petrol)', 'Electric Scooters', 'Walking', 'Biking'),
- Average_CO2_Emissions = c(117.0, 130.333333, 61.333333, 6.35, 5.493333, 7.504773, 0.0, 0.0)
- )
- plot <- ggplot(data, aes(x = Average_CO2_Emissions, y = reorder(Mode_of_Transport, Average_CO2_Emissions), fill = Average_CO2_Emissions)) +
- geom_bar(stat = "identity", color = "black") + # Add black border to bars
- scale_fill_gradient(low = "green", high = "red", name = "CO2 Emissions (g/km)") +
- labs(title = "Average CO2 Emissions by Mode of Transport (per passenger)",
- x = "Average CO2 Emissions (g/km per passenger)",
- y = "Mode of Transport") +
- theme_minimal() +
- theme(
- plot.title = element_text(hjust = 0.5),
- panel.border = element_rect(color = "black", fill = NA, size = 1) # Add black border around the plot
- )
- ggsave("CO2_Emissions_by_Transport_with_Border.png", plot = plot, width = 10, height = 6)
- ```
- ## Calories Burnt
- ```{r}
- met_values <- c(
- "Bus" = 1.0,
- "Walking" = 4.0,
- "Car" = 1.0,
- "Electric_Scooter" = 1.0
- )
- distances <- c(
- "Bus" = 3.5,
- "Walking" = 3.3,
- "Car" = 3.2,
- "Electric_Scooter" = 3.9
- )
- speeds <- c(
- "Bus" = 20,
- "Walking" = 5,
- "Car" = 60,
- "Electric_Scooter" = 15
- )
- weight <- 70
- durations <- distances / speeds
- calories_burned <- met_values * weight * durations
- calories_data <- data.frame(
- Mode_of_Transport = names(calories_burned),
- Distance_km = distances,
- Duration_hours = durations,
- MET_value = met_values,
- Calories_Burned = calories_burned
- )
- print(calories_data)
- ```
- ```{r}
- library(ggplot2)
- calories_data <- data.frame(
- Mode_of_Transport = c("Bus", "Walking", "Car", "Electric_Scooter"),
- Distance_km = c(3.5, 3.3, 3.2, 3.9),
- Duration_hours = c(0.175, 0.66, 0.05333333, 0.26),
- MET_value = c(1, 4, 1, 1),
- Calories_Burned = c(12.25, 184.8, 3.733333, 18.2)
- )
- p <- ggplot(calories_data, aes(x = reorder(Mode_of_Transport, -Calories_Burned), y = Calories_Burned, fill = Calories_Burned)) +
- geom_bar(stat = "identity", color = "black", width = 0.7) +
- coord_flip() +
- geom_text(aes(label = round(Calories_Burned, 1)), hjust = -0.1, color = "black", size = 4.5, fontface = "bold") +
- labs(title = "Calories Burned by Mode of Transport",
- x = "Mode of Transport",
- y = "Calories Burned") +
- theme_minimal() +
- theme(
- plot.title = element_text(hjust = 0.5, size = 22, face = "bold"),
- axis.title.x = element_text(size = 18, face = "bold"),
- axis.title.y = element_text(size = 18, face = "bold"),
- axis.text.x = element_text(size = 16),
- axis.text.y = element_text(size = 16),
- panel.grid.major = element_line(color = "gray", size = 0.5),
- panel.grid.minor = element_blank(),
- panel.border = element_rect(color = "black", fill = NA, size = 1)
- ) +
- scale_fill_gradient(low = "green", high = "red", name = "Calories Burned")
- ggsave("Calories_Burned_by_Transport.png", plot = p, width = 12, height = 8, dpi = 300)
- ```
Advertisement
Add Comment
Please, Sign In to add comment