read.csv("https://raw.githubusercontent.com/edwindj/datacleaning/master/data/dirty_iris.csv")
sum(is.na(dirty_iris$Petal.Length)) [1] 19
### Percentage and num complete
num_complete <- sum(complete.cases(dirty_iris))
perc_complete <- mean(complete.cases(dirty_iris)) * 100
dirty_iris\(Petal.Width[86] <- NA > dirty_iris\)Petal.Width[86]
### violations
violations <- subset(dirty_iris, Sepal.Width <= 0 | Sepal.Length > 30)
> violations
nrow(violations)
Impute missing Sepal.Width with column mean (excluding NA) > dirty_iris\(Sepal.Width[is.na(dirty_iris\)Sepal.Width)] <- mean(dirty_iris\(Sepal.Width, na.rm = TRUE) > > dirty_iris\)Petal.Length[is.na(dirty_iris\(Petal.Length)] <- median(dirty_iris\)Petal.Length, na.rm = TRUE) > dirty_iris$Sepal.Width
```