For this project, I used the built-in iris dataset,
which contains 150 observations of three flower species:
setosa, versicolor, and virginica. The goal
of this milestone is to demonstrate that I can work with the data,
perform exploratory analysis, and prepare for building a prediction
algorithm and Shiny app.
# Load the iris dataset
data <- iris
# Display the first few rows
head(data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
# Display summary statistics for the dataset
summary(data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
# Count observations by species
table(data$Species)
##
## setosa versicolor virginica
## 50 50 50
# Check if there are any missing values
sapply(data, function(x) sum(is.na(x)))
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 0 0 0 0 0
# Load the ggplot2 library for plotting
library(ggplot2)
# Create a histogram of Sepal Length
ggplot(data, aes(x = Sepal.Length)) +
geom_histogram(binwidth = 0.5, fill = "blue", color = "black") +
theme_minimal() +
labs(title = "Distribution of Sepal Length", x = "Sepal Length", y = "Frequency")
# Scatter plot of Sepal Length vs Petal Length, colored by species
ggplot(data, aes(x = Sepal.Length, y = Petal.Length, color = Species)) +
geom_point() +
theme_minimal() +
labs(title = "Scatter Plot: Sepal vs Petal Length", x = "Sepal Length", y = "Petal Length")