Question 1
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)

data("iris")
glimpse(iris)
## Rows: 150
## Columns: 5
## $ Sepal.Length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
## $ Sepal.Width  <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
## $ Petal.Length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
## $ Petal.Width  <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
## $ Species      <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, s…
# 5 columns (variables), 150 rows (observations)


Question 2
library(tidyverse)
library(dplyr)

iris1 <- filter(iris, Species!="setosa",Sepal.Length>6,Sepal.Width>2.5)

iris1
##    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1           7.0         3.2          4.7         1.4 versicolor
## 2           6.4         3.2          4.5         1.5 versicolor
## 3           6.9         3.1          4.9         1.5 versicolor
## 4           6.5         2.8          4.6         1.5 versicolor
## 5           6.3         3.3          4.7         1.6 versicolor
## 6           6.6         2.9          4.6         1.3 versicolor
## 7           6.1         2.9          4.7         1.4 versicolor
## 8           6.7         3.1          4.4         1.4 versicolor
## 9           6.1         2.8          4.0         1.3 versicolor
## 10          6.1         2.8          4.7         1.2 versicolor
## 11          6.4         2.9          4.3         1.3 versicolor
## 12          6.6         3.0          4.4         1.4 versicolor
## 13          6.8         2.8          4.8         1.4 versicolor
## 14          6.7         3.0          5.0         1.7 versicolor
## 15          6.7         3.1          4.7         1.5 versicolor
## 16          6.1         3.0          4.6         1.4 versicolor
## 17          6.2         2.9          4.3         1.3 versicolor
## 18          6.3         3.3          6.0         2.5  virginica
## 19          7.1         3.0          5.9         2.1  virginica
## 20          6.3         2.9          5.6         1.8  virginica
## 21          6.5         3.0          5.8         2.2  virginica
## 22          7.6         3.0          6.6         2.1  virginica
## 23          7.3         2.9          6.3         1.8  virginica
## 24          7.2         3.6          6.1         2.5  virginica
## 25          6.5         3.2          5.1         2.0  virginica
## 26          6.4         2.7          5.3         1.9  virginica
## 27          6.8         3.0          5.5         2.1  virginica
## 28          6.4         3.2          5.3         2.3  virginica
## 29          6.5         3.0          5.5         1.8  virginica
## 30          7.7         3.8          6.7         2.2  virginica
## 31          7.7         2.6          6.9         2.3  virginica
## 32          6.9         3.2          5.7         2.3  virginica
## 33          7.7         2.8          6.7         2.0  virginica
## 34          6.3         2.7          4.9         1.8  virginica
## 35          6.7         3.3          5.7         2.1  virginica
## 36          7.2         3.2          6.0         1.8  virginica
## 37          6.2         2.8          4.8         1.8  virginica
## 38          6.1         3.0          4.9         1.8  virginica
## 39          6.4         2.8          5.6         2.1  virginica
## 40          7.2         3.0          5.8         1.6  virginica
## 41          7.4         2.8          6.1         1.9  virginica
## 42          7.9         3.8          6.4         2.0  virginica
## 43          6.4         2.8          5.6         2.2  virginica
## 44          6.3         2.8          5.1         1.5  virginica
## 45          6.1         2.6          5.6         1.4  virginica
## 46          7.7         3.0          6.1         2.3  virginica
## 47          6.3         3.4          5.6         2.4  virginica
## 48          6.4         3.1          5.5         1.8  virginica
## 49          6.9         3.1          5.4         2.1  virginica
## 50          6.7         3.1          5.6         2.4  virginica
## 51          6.9         3.1          5.1         2.3  virginica
## 52          6.8         3.2          5.9         2.3  virginica
## 53          6.7         3.3          5.7         2.5  virginica
## 54          6.7         3.0          5.2         2.3  virginica
## 55          6.5         3.0          5.2         2.0  virginica
## 56          6.2         3.4          5.4         2.3  virginica


Question 3
library(tidyverse)
library(dplyr)

iris2 <- data.frame(
  select(iris1, Species, Sepal.Length, Sepal.Width))

glimpse(iris2)
## Rows: 56
## Columns: 3
## $ Species      <fct> versicolor, versicolor, versicolor, versicolor, versicolo…
## $ Sepal.Length <dbl> 7.0, 6.4, 6.9, 6.5, 6.3, 6.6, 6.1, 6.7, 6.1, 6.1, 6.4, 6.…
## $ Sepal.Width  <dbl> 3.2, 3.2, 3.1, 2.8, 3.3, 2.9, 2.9, 3.1, 2.8, 2.8, 2.9, 3.…
# 3 columns (variables), 56 rows (observations)


Question 4
library(tidyverse)
library(dplyr)

iris3 <- arrange(iris2, by=desc(Sepal.Length))
head(iris3, 6)
##     Species Sepal.Length Sepal.Width
## 1 virginica          7.9         3.8
## 2 virginica          7.7         3.8
## 3 virginica          7.7         2.6
## 4 virginica          7.7         2.8
## 5 virginica          7.7         3.0
## 6 virginica          7.6         3.0


Question 5
library(tidyverse)
library(dplyr)

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

iris4
##       Species Sepal.Length Sepal.Width Sepal.Area
## 1   virginica          7.9         3.8      30.02
## 2   virginica          7.7         3.8      29.26
## 3   virginica          7.7         2.6      20.02
## 4   virginica          7.7         2.8      21.56
## 5   virginica          7.7         3.0      23.10
## 6   virginica          7.6         3.0      22.80
## 7   virginica          7.4         2.8      20.72
## 8   virginica          7.3         2.9      21.17
## 9   virginica          7.2         3.6      25.92
## 10  virginica          7.2         3.2      23.04
## 11  virginica          7.2         3.0      21.60
## 12  virginica          7.1         3.0      21.30
## 13 versicolor          7.0         3.2      22.40
## 14 versicolor          6.9         3.1      21.39
## 15  virginica          6.9         3.2      22.08
## 16  virginica          6.9         3.1      21.39
## 17  virginica          6.9         3.1      21.39
## 18 versicolor          6.8         2.8      19.04
## 19  virginica          6.8         3.0      20.40
## 20  virginica          6.8         3.2      21.76
## 21 versicolor          6.7         3.1      20.77
## 22 versicolor          6.7         3.0      20.10
## 23 versicolor          6.7         3.1      20.77
## 24  virginica          6.7         3.3      22.11
## 25  virginica          6.7         3.1      20.77
## 26  virginica          6.7         3.3      22.11
## 27  virginica          6.7         3.0      20.10
## 28 versicolor          6.6         2.9      19.14
## 29 versicolor          6.6         3.0      19.80
## 30 versicolor          6.5         2.8      18.20
## 31  virginica          6.5         3.0      19.50
## 32  virginica          6.5         3.2      20.80
## 33  virginica          6.5         3.0      19.50
## 34  virginica          6.5         3.0      19.50
## 35 versicolor          6.4         3.2      20.48
## 36 versicolor          6.4         2.9      18.56
## 37  virginica          6.4         2.7      17.28
## 38  virginica          6.4         3.2      20.48
## 39  virginica          6.4         2.8      17.92
## 40  virginica          6.4         2.8      17.92
## 41  virginica          6.4         3.1      19.84
## 42 versicolor          6.3         3.3      20.79
## 43  virginica          6.3         3.3      20.79
## 44  virginica          6.3         2.9      18.27
## 45  virginica          6.3         2.7      17.01
## 46  virginica          6.3         2.8      17.64
## 47  virginica          6.3         3.4      21.42
## 48 versicolor          6.2         2.9      17.98
## 49  virginica          6.2         2.8      17.36
## 50  virginica          6.2         3.4      21.08
## 51 versicolor          6.1         2.9      17.69
## 52 versicolor          6.1         2.8      17.08
## 53 versicolor          6.1         2.8      17.08
## 54 versicolor          6.1         3.0      18.30
## 55  virginica          6.1         3.0      18.30
## 56  virginica          6.1         2.6      15.86
# 4 variables, 56 observations


Question 6
library(tidyverse)
library(dplyr)


iris5 <- summarize(iris4,
meanSepalLength=mean(Sepal.Length),
meanSepalWidth=mean(Sepal.Width),
samplesize=n())

print(iris5)
##   meanSepalLength meanSepalWidth samplesize
## 1        6.698214       3.041071         56


Question 7
library(tidyverse)
library(dplyr)

iris4Group <- group_by(iris4, Species)
iris6 <- summarize(iris4Group,
meanSepalLength=mean(Sepal.Length),
meanSepalWidth=mean(Sepal.Width),
samplesize=n())

print(iris6)
## # A tibble: 2 × 4
##   Species    meanSepalLength meanSepalWidth samplesize
##   <fct>                <dbl>          <dbl>      <int>
## 1 versicolor            6.48           2.99         17
## 2 virginica             6.79           3.06         39


Question 8
library(tidyverse)
library(dplyr)

irisFinal <- iris %>% 
  
  filter(Species!="setosa", Sepal.Length>6, Sepal.Width>2.5) %>%
  
  select(Species, Sepal.Length, Sepal.Width) %>%
  
  arrange(by=desc(Sepal.Length)) %>%
  
  mutate(Sepal.Area=Sepal.Length*Sepal.Width) %>%
 
   group_by(Species) %>%
 
   summarize( 
             meanSepalLength=mean(Sepal.Length),
             meanSepalWidth=mean(Sepal.Width),
             samplesize=n())


print(irisFinal)
## # A tibble: 2 × 4
##   Species    meanSepalLength meanSepalWidth samplesize
##   <fct>                <dbl>          <dbl>      <int>
## 1 versicolor            6.48           2.99         17
## 2 virginica             6.79           3.06         39


Question 8
library(tidyverse)
library(dplyr)

irisLong <- iris %>%
   pivot_longer(cols = c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width),
                names_to = "Measure",
                values_to = "Value")

print(irisLong)
## # A tibble: 600 × 3
##    Species Measure      Value
##    <fct>   <chr>        <dbl>
##  1 setosa  Sepal.Length   5.1
##  2 setosa  Sepal.Width    3.5
##  3 setosa  Petal.Length   1.4
##  4 setosa  Petal.Width    0.2
##  5 setosa  Sepal.Length   4.9
##  6 setosa  Sepal.Width    3  
##  7 setosa  Petal.Length   1.4
##  8 setosa  Petal.Width    0.2
##  9 setosa  Sepal.Length   4.7
## 10 setosa  Sepal.Width    3.2
## # ℹ 590 more rows