Question 1

str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
# 150 observations and 5 variables

Question 2

iris1 <- iris %>% 
  filter(Species == c("virginica", "versicolor"), Sepal.Length > 6.0, Sepal.Width > 2.5)

str(iris1)
## 'data.frame':    28 obs. of  5 variables:
##  $ Sepal.Length: num  6.4 6.1 6.7 6.1 6.1 6.6 6.7 6.1 6.2 6.3 ...
##  $ Sepal.Width : num  3.2 2.9 3.1 2.8 2.8 3 3 3 2.9 3.3 ...
##  $ Petal.Length: num  4.5 4.7 4.4 4 4.7 4.4 5 4.6 4.3 6 ...
##  $ Petal.Width : num  1.5 1.4 1.4 1.3 1.2 1.4 1.7 1.4 1.3 2.5 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 3 ...
# 28 observations and 5 variables

Question 3

iris2 <- iris1 %>%
  select(Species, Sepal.Length, Sepal.Width)

str(iris2)
## 'data.frame':    28 obs. of  3 variables:
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 3 ...
##  $ Sepal.Length: num  6.4 6.1 6.7 6.1 6.1 6.6 6.7 6.1 6.2 6.3 ...
##  $ Sepal.Width : num  3.2 2.9 3.1 2.8 2.8 3 3 3 2.9 3.3 ...
# 28 observations and 3 variables

Question 4

iris3 <- iris2 %>% 
  arrange(by=desc(Sepal.Length))

print(head(iris3), 6)
##     Species Sepal.Length Sepal.Width
## 1 virginica          7.7         2.6
## 2 virginica          7.7         2.8
## 3 virginica          7.4         2.8
## 4 virginica          7.1         3.0
## 5 virginica          6.9         3.2
## 6 virginica          6.8         3.0

Question 5

iris4 <- iris3 %>% 
  mutate(Sepal.Area = Sepal.Length*Sepal.Width)

str(iris4)
## 'data.frame':    28 obs. of  4 variables:
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 3 3 3 3 3 3 2 2 3 3 ...
##  $ Sepal.Length: num  7.7 7.7 7.4 7.1 6.9 6.8 6.7 6.7 6.7 6.7 ...
##  $ Sepal.Width : num  2.6 2.8 2.8 3 3.2 3 3.1 3 3.3 3.1 ...
##  $ Sepal.Area  : num  20 21.6 20.7 21.3 22.1 ...
# 28 observations and 4 variables

Question 6

iris5 <- c(avg_sepal.length = mean(iris4$Sepal.Length), avg_sepal.width = mean(iris4$Sepal.Width), avg_sepal.area = mean(iris4$Sepal.Area))

print(iris5)
## avg_sepal.length  avg_sepal.width   avg_sepal.area 
##         6.575000         3.003571        19.732143

Question 7

iris6 <- iris4 %>% 
  group_by(Species) %>%
  summarize(avg_sepal.length = mean(Sepal.Length), avg_sepal.width = mean(Sepal.Width), number=n())
  
print(iris6)
## # A tibble: 2 × 4
##   Species    avg_sepal.length avg_sepal.width number
##   <fct>                 <dbl>           <dbl>  <int>
## 1 versicolor             6.33            2.97      9
## 2 virginica              6.69            3.02     19

Question 8

irisFinal <- iris %>% 
  filter(Species == c("virginica", "versicolor"), Sepal.Length > 6.0, Sepal.Width > 2.5) %>% 
  select(Species, Sepal.Length, Sepal.Width) %>% 
  group_by(Species) %>%
  summarize(avg_sepal.length = mean(Sepal.Length), avg_sepal.width = mean(Sepal.Width), number=n())

Question 9

iris <- iris %>% 
  mutate(ID = 1:length(iris$Sepal.Length))

iris_long <- pivot_longer(iris, cols=Sepal.Length:Petal.Width, names_to="Meaure", values_to="Value")