📥 Load and Clean Data

usage_data1 <- read.csv("G:/My Drive/Dan-a-Lisa/Home/Utilities/Electricity/Usage Analysis/IntervalData2023.csv")
usage_data2 <- read.csv("G:/My Drive/Dan-a-Lisa/Home/Utilities/Electricity/Usage Analysis/IntervalData2024.csv")
usage_data3 <- read.csv("G:/My Drive/Dan-a-Lisa/Home/Utilities/Electricity/Usage Analysis/IntervalData2025.csv")

# Combine datasets
usage_data <- rbind(usage_data1, usage_data2, usage_data3)

# Remove 0s
usage_data <- subset(usage_data, USAGE_KWH != 0)

# Combine date and time
usage_data$USAGE_DATETIME <- paste(usage_data$USAGE_DATE, usage_data$USAGE_START_TIME)
usage_data$USAGE_DATETIME <- as.POSIXct(usage_data$USAGE_DATETIME, format = "%m/%d/%Y %H:%M")

📊 Aggregate Data at Multiple Levels

# Hourly
usage_data$USAGE_HOUR <- floor_date(usage_data$USAGE_DATETIME, unit = "hour")
usage_hourly <- usage_data %>%
  group_by(USAGE_HOUR) %>%
  summarise(total_kwh = sum(USAGE_KWH), .groups = "drop")

# Daily
usage_data$USAGE_DATE <- as.Date(usage_data$USAGE_DATETIME)
usage_daily <- usage_data %>%
  group_by(USAGE_DATE) %>%
  summarise(total_kwh = sum(USAGE_KWH), .groups = "drop")

# Weekly
usage_data$USAGE_WEEK <- floor_date(usage_data$USAGE_DATETIME, unit = "week")
usage_weekly <- usage_data %>%
  group_by(USAGE_WEEK) %>%
  summarise(total_kwh = sum(USAGE_KWH), .groups = "drop")

# Monthly
usage_data$USAGE_MONTH <- floor_date(usage_data$USAGE_DATETIME, unit = "month")
usage_monthly <- usage_data %>%
  group_by(USAGE_MONTH) %>%
  summarise(total_kwh = sum(USAGE_KWH), .groups = "drop")

# Quarterly
usage_data$USAGE_QUARTER <- floor_date(usage_data$USAGE_DATETIME, unit = "quarter")
usage_quarterly <- usage_data %>%
  group_by(USAGE_QUARTER) %>%
  summarise(total_kwh = sum(USAGE_KWH), .groups = "drop")

📈 Quarterly Usage

ggplot(usage_quarterly, aes(x = USAGE_QUARTER, y = total_kwh)) +
  geom_col(fill = "tomato") +
  labs(title = "Quarterly Electricity Usage", x = "Quarter", y = "Total kWh") +
  theme_minimal()

📈 Monthly Usage

ggplot(usage_monthly, aes(x = USAGE_MONTH, y = total_kwh)) +
  geom_col(fill = "orange") +
  labs(title = "Monthly Electricity Usage", x = "Month", y = "Total kWh") +
  theme_minimal()

📈 Weekly Usage

ggplot(usage_weekly, aes(x = USAGE_WEEK, y = total_kwh)) +
  geom_line(color = "purple") +
  labs(title = "Weekly Electricity Usage", x = "Week", y = "Total kWh") +
  theme_minimal()

📈 Daily Usage

ggplot(usage_daily, aes(x = USAGE_DATE, y = total_kwh)) +
  geom_line(color = "darkgreen") +
  labs(title = "Daily Electricity Usage", x = "Date", y = "Total kWh") +
  theme_minimal()

```