dirty_iris <- read.csv(“https://raw.githubusercontent.com/edwindj/datacleaning/master/data/dirty_iris.csv”)

sum(is.na(dirty_iris$Petal.Length))

num_complete <- sum(complete.cases(dirty_iris))

percent_complete <- (num_complete / nrow(dirty_iris)) * 100

dirty_iris[is.Inf(dirty_iris$Petal.Width), “Petal.Width”] <- NA

dirty_iris\(Sepal.Width[dirty_iris\)Sepal.Width < 0] <- abs(dirty_iris\(Sepal.Width[dirty_iris\)Sepal.Width < 0])

dirty_iris\(Sepal.Width[dirty_iris\)Sepal.Width == 0] <- NA

print(dirty_iris$Sepal.Width)

mean_sepal_width <- mean(dirty_iris\(Sepal.Width, na.rm = TRUE) dirty_iris\)Sepal.Width[is.na(dirty_iris$Sepal.Width)] <- mean_sepal_width

median_petal_length <- median(dirty_iris\(Petal.Length, na.rm = TRUE) dirty_iris\)Petal.Length[is.na(dirty_iris$Petal.Length)] <- median_petal_length

mice_data <- mice(dirty_iris, method = “norm.predict”, m = 1, maxit = 5, seed = 123) dirty_iris <- complete(mice_data)

dirty_iris <- kNN(dirty_iris, variable = “Petal.Width”, k = 5, imp_var = FALSE)

head(dirty_iris)