Question 1. Examine the structure of the iris data set. How many
observations and variables are in the data set?
# install libraries
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ 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
# use the built in dataset of iris
data(iris)
class(iris)
## [1] "data.frame"
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…
head(iris)
## 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
print(iris)
## 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
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
There are 150 observations and 5 variables in the iris dataset.
Question 2. Create a new data frame iris1 that contains only the
species virginica and versicolor with sepal lengths longer than 6 cm and
sepal widths longer than 2.5 cm. How many observations and variables are
in the data set?
# Make iris1 data frame
iris1 <- iris %>%
filter(Species %in% c("virginica", "versicolor") &
Sepal.Length > 6 &
Sepal.Width > 2.5)
## this does the same thing as above without piping
iris1 <- filter(iris, Species %in% c("virginica", "versicolor") &
Sepal.Length > 6 &
Sepal.Width > 2.5)
# look at the variables and observations with glimpse function
glimpse(iris1)
## Rows: 56
## Columns: 5
## $ 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.…
## $ Petal.Length <dbl> 4.7, 4.5, 4.9, 4.6, 4.7, 4.6, 4.7, 4.4, 4.0, 4.7, 4.3, 4.…
## $ Petal.Width <dbl> 1.4, 1.5, 1.5, 1.5, 1.6, 1.3, 1.4, 1.4, 1.3, 1.2, 1.3, 1.…
## $ Species <fct> versicolor, versicolor, versicolor, versicolor, versicolo…
print(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
This reduced the dataset to 56 observations
Question 3. Now, create a iris2 data frame from iris1 that contains
only the columns for Species, Sepal.Length, and Sepal.Width. How many
observations and variables are in the data set?
# make iris2 dataframe
iris2 <- iris1 %>%
select(Species, Sepal.Length, Sepal.Width)
# use glimpse to check the variables and observations
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.…
print(iris2)
## Species Sepal.Length Sepal.Width
## 1 versicolor 7.0 3.2
## 2 versicolor 6.4 3.2
## 3 versicolor 6.9 3.1
## 4 versicolor 6.5 2.8
## 5 versicolor 6.3 3.3
## 6 versicolor 6.6 2.9
## 7 versicolor 6.1 2.9
## 8 versicolor 6.7 3.1
## 9 versicolor 6.1 2.8
## 10 versicolor 6.1 2.8
## 11 versicolor 6.4 2.9
## 12 versicolor 6.6 3.0
## 13 versicolor 6.8 2.8
## 14 versicolor 6.7 3.0
## 15 versicolor 6.7 3.1
## 16 versicolor 6.1 3.0
## 17 versicolor 6.2 2.9
## 18 virginica 6.3 3.3
## 19 virginica 7.1 3.0
## 20 virginica 6.3 2.9
## 21 virginica 6.5 3.0
## 22 virginica 7.6 3.0
## 23 virginica 7.3 2.9
## 24 virginica 7.2 3.6
## 25 virginica 6.5 3.2
## 26 virginica 6.4 2.7
## 27 virginica 6.8 3.0
## 28 virginica 6.4 3.2
## 29 virginica 6.5 3.0
## 30 virginica 7.7 3.8
## 31 virginica 7.7 2.6
## 32 virginica 6.9 3.2
## 33 virginica 7.7 2.8
## 34 virginica 6.3 2.7
## 35 virginica 6.7 3.3
## 36 virginica 7.2 3.2
## 37 virginica 6.2 2.8
## 38 virginica 6.1 3.0
## 39 virginica 6.4 2.8
## 40 virginica 7.2 3.0
## 41 virginica 7.4 2.8
## 42 virginica 7.9 3.8
## 43 virginica 6.4 2.8
## 44 virginica 6.3 2.8
## 45 virginica 6.1 2.6
## 46 virginica 7.7 3.0
## 47 virginica 6.3 3.4
## 48 virginica 6.4 3.1
## 49 virginica 6.9 3.1
## 50 virginica 6.7 3.1
## 51 virginica 6.9 3.1
## 52 virginica 6.8 3.2
## 53 virginica 6.7 3.3
## 54 virginica 6.7 3.0
## 55 virginica 6.5 3.0
## 56 virginica 6.2 3.4
The iris2 data frame still has 56 observations (rows) and now only 3
variables (columns)
Question 4. Create an iris3 data frame from iris2 that orders the
observations from largest to smallest sepal length. Show the first 6
rows of this data set.
# make iris3 data frame and use arrange() to see the largest to smallest sepal length
iris3 <- iris2 %>%
arrange(desc(Sepal.Length))
print(iris3)
## 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
## 7 virginica 7.4 2.8
## 8 virginica 7.3 2.9
## 9 virginica 7.2 3.6
## 10 virginica 7.2 3.2
## 11 virginica 7.2 3.0
## 12 virginica 7.1 3.0
## 13 versicolor 7.0 3.2
## 14 versicolor 6.9 3.1
## 15 virginica 6.9 3.2
## 16 virginica 6.9 3.1
## 17 virginica 6.9 3.1
## 18 versicolor 6.8 2.8
## 19 virginica 6.8 3.0
## 20 virginica 6.8 3.2
## 21 versicolor 6.7 3.1
## 22 versicolor 6.7 3.0
## 23 versicolor 6.7 3.1
## 24 virginica 6.7 3.3
## 25 virginica 6.7 3.1
## 26 virginica 6.7 3.3
## 27 virginica 6.7 3.0
## 28 versicolor 6.6 2.9
## 29 versicolor 6.6 3.0
## 30 versicolor 6.5 2.8
## 31 virginica 6.5 3.0
## 32 virginica 6.5 3.2
## 33 virginica 6.5 3.0
## 34 virginica 6.5 3.0
## 35 versicolor 6.4 3.2
## 36 versicolor 6.4 2.9
## 37 virginica 6.4 2.7
## 38 virginica 6.4 3.2
## 39 virginica 6.4 2.8
## 40 virginica 6.4 2.8
## 41 virginica 6.4 3.1
## 42 versicolor 6.3 3.3
## 43 virginica 6.3 3.3
## 44 virginica 6.3 2.9
## 45 virginica 6.3 2.7
## 46 virginica 6.3 2.8
## 47 virginica 6.3 3.4
## 48 versicolor 6.2 2.9
## 49 virginica 6.2 2.8
## 50 virginica 6.2 3.4
## 51 versicolor 6.1 2.9
## 52 versicolor 6.1 2.8
## 53 versicolor 6.1 2.8
## 54 versicolor 6.1 3.0
## 55 virginica 6.1 3.0
## 56 virginica 6.1 2.6
# Show the first 6 rows for the question
head(iris3)
## 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. Create an iris4 data frame from iris3 that creates a
column with a sepal area (length * width) value for each observation.
How many observations and variables are in the data set?
# create a new iris4 data frame and use mutate to make a new dataframe of sepal area
iris4 <- iris3 %>%
mutate(Sepal.Area = Sepal.Length * Sepal.Width)
#use glimpse again to check the observations and variables
glimpse(iris4)
## Rows: 56
## Columns: 4
## $ Species <fct> virginica, virginica, virginica, virginica, virginica, vi…
## $ Sepal.Length <dbl> 7.9, 7.7, 7.7, 7.7, 7.7, 7.6, 7.4, 7.3, 7.2, 7.2, 7.2, 7.…
## $ Sepal.Width <dbl> 3.8, 3.8, 2.6, 2.8, 3.0, 3.0, 2.8, 2.9, 3.6, 3.2, 3.0, 3.…
## $ Sepal.Area <dbl> 30.02, 29.26, 20.02, 21.56, 23.10, 22.80, 20.72, 21.17, 2…
There are 56 observations and 4 variables in the iris4 data
frame.
Question 6. Create iris5 that calculates the average sepal length,
the average sepal width, and the sample size of the entire iris4 data
frame and print iris5.
# make iris5 data frame and use summarize to get the means of sepal length and sepal width
iris5 <- iris4 %>%
summarize(
average.Sepal.Length = mean(Sepal.Length),
average.Sepal.Width = mean(Sepal.Width),
sample.size = n())
# Print iris5 for the question
print(iris5)
## average.Sepal.Length average.Sepal.Width sample.size
## 1 6.698214 3.041071 56
Question 7. Finally, create iris6 that calculates the average sepal
length, the average sepal width, and the sample size for each species of
in the iris4 data frame and print iris6.
# make iris6 dataframe now. use the group_by function to group by the species so then we can summarize by the species for the stats
iris6 <- iris4 %>%
group_by(Species) %>%
summarize(
average.Sepal.Length = mean(Sepal.Length),
average.Sepal.Width = mean(Sepal.Width),
Sample.Size = n())
# Print iris6 for the question
print(iris6)
## # A tibble: 2 × 4
## Species average.Sepal.Length average.Sepal.Width Sample.Size
## <fct> <dbl> <dbl> <int>
## 1 versicolor 6.48 2.99 17
## 2 virginica 6.79 3.06 39
Question 9. Create a ‘longer’ data frame using the original iris
data set with three columns named “Species”, “Measure”, “Value”. The
column “Species” will retain the species names of the data set. The
column “Measure” will include whether the value corresponds to
Sepal.Length, Sepal.Width, Petal.Length, or Petal.Width and the column
“Value” will include the numerical values of those measurements.
# need to create using the pivot_longer function
iris_longer <- iris %>%
pivot_longer(
cols = c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width),
names_to = "Measure",
values_to = "Value")
head(iris_longer)
## # A tibble: 6 × 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
# check out the entire dataframe
print(iris_longer)
## # 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