setwd("C:/Users/iftir/Downloads/AirQualityProject")
list.files()
AirQuality <- read.csv("AirQualityUCI.csv", header = TRUE)
str(AirQuality)
head(AirQuality)
names(AirQuality)
AirQuality <- AirQuality[, !(names(AirQuality) %in% c("X", "X.1"))]
AirQuality[AirQuality == -200] <- NA
AirQuality$DateTime <- as.POSIXct(
  paste(AirQuality$Date, AirQuality$Time),
  format = "%d-%m-%Y %H:%M:%S"
)
head(AirQuality)
str(AirQuality)
head(AirQuality)
dim(AirQuality)
# A time series plot is used here because the dataset contains hourly observations.
# This makes it suitable for examining how pollutant levels change over time.
plot(AirQuality$DateTime, AirQuality$CO.GT.,
     type = "l",
     xlab = "Date and Time",
     ylab = "CO(GT)",
     main = "Time Series Plot of CO Levels")
# A second time series plot is used for NO2 to compare another pollutant across time.
plot(AirQuality$DateTime, AirQuality$NO2.GT.,
     type = "l",
     xlab = "Date and Time",
     ylab = "NO2(GT)",
     main = "Time Series Plot of NO2 Levels")
# A scatterplot is used to examine whether there is a relationship
# between carbon monoxide levels and temperature.
plot(AirQuality$T, AirQuality$CO.GT.,
     xlab = "Temperature",
     ylab = "CO(GT)",
     main = "Scatterplot of CO vs Temperature")
pollutants <- AirQuality[, c("CO.GT.", "NO2.GT.", "C6H6.GT.")]
cor_matrix <- cor(pollutants, use = "complete.obs")
cor_matrix
plot(AirQuality$CO.GT., AirQuality$NO2.GT.,
     xlab = "CO(GT)",
     ylab = "NO2(GT)",
     main = "Scatterplot of CO vs NO2")
plot(AirQuality$CO.GT., AirQuality$C6H6.GT.,
     xlab = "CO(GT)",
     ylab = "C6H6(GT)",
     main = "Scatterplot of CO vs Benzene")
plot(AirQuality$NO2.GT., AirQuality$C6H6.GT.,
     xlab = "NO2(GT)",
     ylab = "C6H6(GT)",
     main = "Scatterplot of NO2 vs Benzene")
pollutants <- AirQuality[, c("CO.GT.", "NO2.GT.", "C6H6.GT.")]
head(pollutants)
cor_matrix <- cor(pollutants, use = "complete.obs")
cor_matrix
median_temp <- median(AirQuality$T, na.rm = TRUE)
median_temp
AirQuality$TempGroup <- ifelse(AirQuality$T <= median_temp, "LowTemp", "HighTemp")
table(AirQuality$TempGroup)
median_temp <- median(AirQuality$T, na.rm = TRUE)
median_temp
AirQuality$TempGroup <- ifelse(AirQuality$T <= median_temp, "LowTemp", "HighTemp")
table(AirQuality$TempGroup)
t_test_result <- t.test(CO.GT. ~ TempGroup, data = AirQuality)
t_test_result
table(AirQuality$TempGroup)
names(AirQuality)
t_test_result <- t.test(AirQuality$CO.GT. ~ AirQuality$TempGroup)
t_test_result
AirQuality$Month <- as.numeric(format(AirQuality$DateTime, "%m"))

AirQuality$Season <- ifelse(AirQuality$Month %in% c(12, 1, 2), "Winter",
                            ifelse(AirQuality$Month %in% c(3, 4, 5), "Spring",
                                   ifelse(AirQuality$Month %in% c(6, 7, 8), "Summer", "Autumn")))

table(AirQuality$Season)
boxplot(CO.GT. ~ Season, data = AirQuality,
        xlab = "Season",
        ylab = "CO(GT)",
        main = "CO Levels Across Seasons")
summary(AirQuality$DateTime)
AirQuality$DateTime <- as.POSIXct(
  paste(AirQuality$Date, AirQuality$Time),
  format = "%d-%m-%Y %H:%M:%S"
)
summary(AirQuality$DateTime)
AirQuality$Month <- as.numeric(format(AirQuality$DateTime, "%m"))
summary(AirQuality$Month)
AirQuality$Season <- ifelse(AirQuality$Month %in% c(12, 1, 2), "Winter",
                            ifelse(AirQuality$Month %in% c(3, 4, 5), "Spring",
                                   ifelse(AirQuality$Month %in% c(6, 7, 8), "Summer", "Autumn")))
table(AirQuality$Season)
boxplot(CO.GT. ~ Season, data = AirQuality,
        xlab = "Season",
        ylab = "CO(GT)",
        main = "CO Levels Across Seasons")
anova_result <- aov(CO.GT. ~ Season, data = AirQuality)
summary(anova_result)
table(AirQuality$Season)
anova_result <- aov(CO.GT. ~ Season, data = AirQuality)
summary(anova_result)
