Tidy Data
Separating and Uniting
Separate a column
table3_sep <- table3 %>%
separate(col = rate, into = c("cases", "population"))
Unite two columns
table3_sep %>%
unite(col = "rate", (cases:population), sep = "/",)
## # A tibble: 6 × 3
## country year rate
## <chr> <int> <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
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(.direction = "up")
## # A tibble: 4 × 3
## person treatment response
## <chr> <dbl> <dbl>
## 1 Derrick Whitmore 1 7
## 2 <NA> 2 10
## 3 <NA> 3 9
## 4 Katherine Burke 1 4
Non-Tidy Data
artists <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-01-17/artists.csv')
## Rows: 3162 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): artist_name, artist_nationality, artist_nationality_other, artist_g...
## dbl (6): edition_number, year, space_ratio_per_page_total, artist_unique_id,...
##
## ℹ 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.