Question 1:
library(tidyverse)
library(dplyr)
library(datasets)
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 ...
There are 150 observations and 5 variables in the iris dataset.
Question 2:
iris1 <- filter(iris, Species != "setosa" & Sepal.Length > 6 & Sepal.Width > 2.5)
str(iris1)
## 'data.frame': 56 obs. of 5 variables:
## $ Sepal.Length: num 7 6.4 6.9 6.5 6.3 6.6 6.1 6.7 6.1 6.1 ...
## $ Sepal.Width : num 3.2 3.2 3.1 2.8 3.3 2.9 2.9 3.1 2.8 2.8 ...
## $ Petal.Length: num 4.7 4.5 4.9 4.6 4.7 4.6 4.7 4.4 4 4.7 ...
## $ Petal.Width : num 1.4 1.5 1.5 1.5 1.6 1.3 1.4 1.4 1.3 1.2 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 2 ...
There are now only 56 observations and 5 variables in this updated
dataset
Question 3:
iris2 <- select (iris1, Species, Sepal.Length, Sepal.Width)
str(iris2)
## 'data.frame': 56 obs. of 3 variables:
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ Sepal.Length: num 7 6.4 6.9 6.5 6.3 6.6 6.1 6.7 6.1 6.1 ...
## $ Sepal.Width : num 3.2 3.2 3.1 2.8 3.3 2.9 2.9 3.1 2.8 2.8 ...
There are now 56 observations, but only the 3 variables that we
selected.
Question 4:
iris3 <- arrange(iris2, by = desc(Sepal.Length))
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:
iris4 <- mutate(iris3, Sepal.Area = Sepal.Length*Sepal.Width)
str(iris4)
## 'data.frame': 56 obs. of 4 variables:
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ Sepal.Length: num 7.9 7.7 7.7 7.7 7.7 7.6 7.4 7.3 7.2 7.2 ...
## $ Sepal.Width : num 3.8 3.8 2.6 2.8 3 3 2.8 2.9 3.6 3.2 ...
## $ Sepal.Area : num 30 29.3 20 21.6 23.1 ...
There are now 56 observations and 4 variables because we just added
Sepal.Area as a variable.
Question 6:
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:
iris6 <- iris4 %>% group_by(Species) %>% summarize(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:
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 9:
irisLonger <- iris %>% pivot_longer(cols=c(Sepal.Length,Sepal.Width,Petal.Length,Petal.Width), names_to = "Measure", values_to = "Value")
head(irisLonger)
## # 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