##Tidy data

##Pivoting

##Long to wide form

table4a_long <- table4a %>%
    
    pivot_longer(cols = c(`1999` ,`2000`),
                 names_to = "year",
                 values_to = "cases")

wide to long

table4a_long %>%
    
    pivot_wider(names_from = year,
                values_from = cases)
## # A tibble: 3 × 3
##   country     `1999` `2000`
##   <chr>        <dbl>  <dbl>
## 1 Afghanistan    745   2666
## 2 Brazil       37737  80488
## 3 China       212258 213766

##Separating and Uniting

Separate a column

table3_sep <- table3 %>%
    separate (col = rate,into = c("cases" , "population"))

Unite two columns

table3_sep %>%
    
    unite(col="rate", sep = "/")
## # A tibble: 6 × 1
##   rate                          
##   <chr>                         
## 1 Afghanistan/1999/745/19987071 
## 2 Afghanistan/2000/2666/20595360
## 3 Brazil/1999/37737/172006362   
## 4 Brazil/2000/80488/174504898   
## 5 China/1999/212258/1272915272  
## 6 China/2000/213766/1280428583

##Missing Values

stocks<- tibble(
    year = c(2015, 2015, 2015, 2015, 2016, 2016, 2016),
    qtr  = c( 1, 2, 3, 4, 2, 3, 4),
    return = c(1.88, 0.59, 0.35, NA, 0.92, 0.17, 2.66)
)
stocks %>%
    pivot_wider (names_from = year, values_from = return)
## # A tibble: 4 × 3
##     qtr `2015` `2016`
##   <dbl>  <dbl>  <dbl>
## 1     1   1.88  NA   
## 2     2   0.59   0.92
## 3     3   0.35   0.17
## 4     4  NA      2.66
bikes <- tibble(
    bike_model  = c("A", "A","B","B", "C"),
    material    = c("steel", "aluminium", "steel", "aluminium", "steel"),
    price = c(100, 200, 300,  400, 500)
)
bikes %>%
    pivot_wider(names_from = bike_model, values_from = price)
## # A tibble: 2 × 4
##   material      A     B     C
##   <chr>     <dbl> <dbl> <dbl>
## 1 steel       100   300   500
## 2 aluminium   200   400    NA
bikes %>%
    complete(bike_model, material)
## # A tibble: 6 × 3
##   bike_model material  price
##   <chr>      <chr>     <dbl>
## 1 A          aluminium   200
## 2 A          steel       100
## 3 B          aluminium   400
## 4 B          steel       300
## 5 C          aluminium    NA
## 6 C          steel       500
treatment <- tribble(
    ~ person, ~ treatment, ~response,
    "Derrick Whitmore", 1,   7,
    NA,      2,            10,
    NA,      3,           9,
"Katherine Burke", 1,         4
)
treatment %>% 
    fill(person, .direction = "down")
## # A tibble: 4 × 3
##   person           treatment response
##   <chr>                <dbl>    <dbl>
## 1 Derrick Whitmore         1        7
## 2 Derrick Whitmore         2       10
## 3 Derrick Whitmore         3        9
## 4 Katherine Burke          1        4
treatment %>% 
    fill(person, .direction = "up")
## # A tibble: 4 × 3
##   person           treatment response
##   <chr>                <dbl>    <dbl>
## 1 Derrick Whitmore         1        7
## 2 Katherine Burke          2       10
## 3 Katherine Burke          3        9
## 4 Katherine Burke          1        4

##Non-Tidy Data