Import your data

myData_Hockey <- read_csv("../00_data/myData_Hockey.csv")
## New names:
## Rows: 251 Columns: 10
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (5): player, years, raw_link, link, active dbl (5): ...1, raw_rank,
## total_goals, url_number, yr_start
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
set.seed(1234)
data_small <- myData_Hockey %>%
    select(player, years, raw_rank) %>%
    filter(!is.na(raw_rank)) %>%
    sample_n(10)


data_small
## # A tibble: 10 × 3
##    player          years   raw_rank
##    <chr>           <chr>      <dbl>
##  1 Maurice Richard 1942-60       31
##  2 Patrik Elias    1995-16       92
##  3 Mike Ridley     1985-97      213
##  4 Phil Kessel     2006-20      128
##  5 Mike Foligno    1979-94      147
##  6 Martin Gelinas  1988-08      198
##  7 Dave Gagner     1984-99      190
##  8 Brad Richards   2000-16      207
##  9 Clark Gillies   1974-88      189
## 10 Thomas Vanek    2005-19      124

Pivoting

wide to long form

data_small %>%
    filter(!is.na(1942-60)) %>%
    filter(!is.na(1995-16)) %>%
    filter(!is.na(1985-97)) %>%
    filter(!is.na(2006-20)) %>%
    pivot_wider(names_from = years, values_from = raw_rank)
## # A tibble: 10 × 11
##    player  `1942-60` `1995-16` `1985-97` `2006-20` `1979-94` `1988-08` `1984-99`
##    <chr>       <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
##  1 Mauric…        31        NA        NA        NA        NA        NA        NA
##  2 Patrik…        NA        92        NA        NA        NA        NA        NA
##  3 Mike R…        NA        NA       213        NA        NA        NA        NA
##  4 Phil K…        NA        NA        NA       128        NA        NA        NA
##  5 Mike F…        NA        NA        NA        NA       147        NA        NA
##  6 Martin…        NA        NA        NA        NA        NA       198        NA
##  7 Dave G…        NA        NA        NA        NA        NA        NA       190
##  8 Brad R…        NA        NA        NA        NA        NA        NA        NA
##  9 Clark …        NA        NA        NA        NA        NA        NA        NA
## 10 Thomas…        NA        NA        NA        NA        NA        NA        NA
## # ℹ 3 more variables: `2000-16` <dbl>, `1974-88` <dbl>, `2005-19` <dbl>

long to wide form

data_small %>%
    
    pivot_longer(cols = c(player, ))
## # A tibble: 10 × 4
##    years   raw_rank name   value          
##    <chr>      <dbl> <chr>  <chr>          
##  1 1942-60       31 player Maurice Richard
##  2 1995-16       92 player Patrik Elias   
##  3 1985-97      213 player Mike Ridley    
##  4 2006-20      128 player Phil Kessel    
##  5 1979-94      147 player Mike Foligno   
##  6 1988-08      198 player Martin Gelinas 
##  7 1984-99      190 player Dave Gagner    
##  8 2000-16      207 player Brad Richards  
##  9 1974-88      189 player Clark Gillies  
## 10 2005-19      124 player Thomas Vanek

Separating and Uniting

Unite two columns

data_united <- myData_Hockey %>%
    
    unite(col = "newName", raw_rank:total_goals, sep = "/", remove = TRUE)

Separate a column

data_united %>% 
    
    separate(col = newName, into = c("RR", "TG"), sep = "/")
## Warning: Expected 2 pieces. Additional pieces discarded in 251 rows [1, 2, 3, 4, 5, 6,
## 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...].
## # A tibble: 251 × 8
##     ...1 RR    TG            url_number raw_link           link  active yr_start
##    <dbl> <chr> <chr>              <dbl> <chr>              <chr> <chr>     <dbl>
##  1     1 1     Wayne Gretzky          1 /players/g/gretzw… http… Retir…     1979
##  2     2 2     Gordie Howe            2 /players/h/howego… http… Retir…     1946
##  3     3 3     Jaromir Jagr           3 /players/j/jagrja… http… Retir…     1990
##  4     4 4     Brett Hull             4 /players/h/hullbr… http… Retir…     1986
##  5     5 5     Marcel Dionne          5 /players/d/dionnm… http… Retir…     1971
##  6     6 6     Phil Esposito          6 /players/e/esposp… http… Retir…     1963
##  7     7 7     Mike Gartner           7 /players/g/gartnm… http… Retir…     1979
##  8     8 8     Alex Ovechkin          8 /players/o/ovecha… http… Active     2005
##  9     9 9     Mark Messier           9 /players/m/messim… http… Retir…     1979
## 10    10 10    Steve Yzerman         10 /players/y/yzerms… http… Retir…     1983
## # ℹ 241 more rows

Missing Values