Import your data

data <- read_excel("../01_module4/data/myData.xlsx")
set.seed(12)
small_data <- data %>%
    select(baker, technical_top3, series) %>%
    sample_n(10)

Pivoting

long to wide form

wide_data <- small_data %>%
    pivot_wider(names_from = series, values_from = technical_top3)

wide_data
## # A tibble: 10 × 8
##    baker      `6`   `8`   `7`   `4`  `10`   `3`   `1`
##    <chr>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
##  1 Nadiya       4    NA    NA    NA    NA    NA    NA
##  2 Peter       NA     0    NA    NA    NA    NA    NA
##  3 Rav         NA    NA     1    NA    NA    NA    NA
##  4 Sophie      NA     6    NA    NA    NA    NA    NA
##  5 Ruby        NA    NA    NA     6    NA    NA    NA
##  6 Stu          0    NA    NA    NA    NA    NA    NA
##  7 Michael     NA    NA    NA    NA     0    NA    NA
##  8 Stacey      NA     4    NA    NA    NA    NA    NA
##  9 Victoria    NA    NA    NA    NA    NA     0    NA
## 10 Mark        NA    NA    NA    NA    NA    NA     0

wide to long form

wide_data %>%
    pivot_longer(-baker, values_drop_na = TRUE)
## # A tibble: 10 × 3
##    baker    name  value
##    <chr>    <chr> <dbl>
##  1 Nadiya   6         4
##  2 Peter    8         0
##  3 Rav      7         1
##  4 Sophie   8         6
##  5 Ruby     4         6
##  6 Stu      6         0
##  7 Michael  10        0
##  8 Stacey   8         4
##  9 Victoria 3         0
## 10 Mark     1         0

Separating and Uniting

Unite two columns

united_data <- data %>%
    unite(col = "Bakerwinner", baker:star_baker, sep = "/", remove = TRUE)

Separate a column

united_data %>%
    separate(col = Bakerwinner, into = c("baker", "star_baker"), sep = "/")
## # A tibble: 120 × 25
##    Column1 series baker     star_baker technical_winner technical_top3
##      <dbl>  <dbl> <chr>     <chr>                 <dbl>          <dbl>
##  1       1      1 Annetha   0                         0              1
##  2       2      1 David     0                         0              1
##  3       3      1 Edd       0                         2              4
##  4       4      1 Jasminder 0                         0              2
##  5       5      1 Jonathan  0                         1              1
##  6       6      1 Lea       0                         0              0
##  7       7      1 Louise    0                         0              0
##  8       8      1 Mark      0                         0              0
##  9       9      1 Miranda   0                         2              4
## 10      10      1 Ruth      0                         0              2
## # ℹ 110 more rows
## # ℹ 19 more variables: technical_bottom <dbl>, technical_highest <chr>,
## #   technical_lowest <chr>, technical_median <chr>, series_winner <dbl>,
## #   series_runner_up <dbl>, total_episodes_appeared <dbl>,
## #   first_date_appeared <chr>, last_date_appeared <chr>, first_date_us <chr>,
## #   last_date_us <chr>, percent_episodes_appeared <dbl>,
## #   percent_technical_top3 <dbl>, baker_full <chr>, age <dbl>, …

Missing Values

small_data %>%
    fill(technical_top3)
## # A tibble: 10 × 3
##    baker    technical_top3 series
##    <chr>             <dbl>  <dbl>
##  1 Nadiya                4      6
##  2 Peter                 0      8
##  3 Rav                   1      7
##  4 Sophie                6      8
##  5 Ruby                  6      4
##  6 Stu                   0      6
##  7 Michael               0     10
##  8 Stacey                4      8
##  9 Victoria              0      3
## 10 Mark                  0      1