Challenge Questions - Week 5

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

Create Id column

iris$id <- NA
for (row in 1:nrow(iris)) {
  iris[row, "id"] = row
}

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species id
## 1          5.1         3.5          1.4         0.2  setosa  1
## 2          4.9         3.0          1.4         0.2  setosa  2
## 3          4.7         3.2          1.3         0.2  setosa  3
## 4          4.6         3.1          1.5         0.2  setosa  4
## 5          5.0         3.6          1.4         0.2  setosa  5
## 6          5.4         3.9          1.7         0.4  setosa  6

Transpose

library(tidyr)
Long_iris <- gather(iris, key="measure", value="value", -Species, -id)
head(Long_iris)
##   Species id      measure value
## 1  setosa  1 Sepal.Length   5.1
## 2  setosa  2 Sepal.Length   4.9
## 3  setosa  3 Sepal.Length   4.7
## 4  setosa  4 Sepal.Length   4.6
## 5  setosa  5 Sepal.Length   5.0
## 6  setosa  6 Sepal.Length   5.4

Reverse

Wide_iris <- spread(Long_iris, measure, value)
head(Wide_iris)
##   Species id Petal.Length Petal.Width Sepal.Length Sepal.Width
## 1  setosa  1          1.4         0.2          5.1         3.5
## 2  setosa  2          1.4         0.2          4.9         3.0
## 3  setosa  3          1.3         0.2          4.7         3.2
## 4  setosa  4          1.5         0.2          4.6         3.1
## 5  setosa  5          1.4         0.2          5.0         3.6
## 6  setosa  6          1.7         0.4          5.4         3.9