Import your data

artists <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2022/2022-09-27/artists.csv') 

Pivoting

long to wide form

# Breaks down each artist type into columns with values in rows below
artists_wide <- artists %>%
    pivot_wider(names_from = type, 
                values_from = artists_n)

wide to long form

# Returns artist types to one column called "type" with values in a column by itself called "artists_n"
artists_wide %>%
    pivot_longer(cols = c(6:18),
                 names_to = "type",
                 values_to = "artists_n",
                 values_drop_na = TRUE)
## # A tibble: 2,681 × 7
##    state     race  all_workers_n artists_share location_quotient type  artists_n
##    <chr>     <chr>         <dbl>         <dbl>             <dbl> <chr>     <dbl>
##  1 Alabama   Hisp…         88165      0.000510             0.875 Arch…        45
##  2 Alaska    Hisp…         26875      0.000558             0.957 Arch…        15
##  3 Arizona   Hisp…       1033370      0.000261             0.448 Arch…       270
##  4 Arkansas  Hisp…        101405     NA                   NA     Land…         0
##  5 Arkansas  Hisp…        101405     NA                   NA     Acto…         0
##  6 Arkansas  Hisp…        101405     NA                   NA     Danc…         0
##  7 Californ… Hisp…       7470730      0.000518             0.888 Arch…      3870
##  8 Colorado  Hisp…        594525      0.000336             0.577 Arch…       200
##  9 Connecti… Hisp…        288845      0.000519             0.891 Arch…       150
## 10 Delaware  Hisp…         41365     NA                   NA     Arch…         0
## # ℹ 2,671 more rows

Separating and Uniting

Unite two columns

# Combine the columns of all workers and all artists

artists_united <- artists %>%
    unite(col = "proportion", c(artists_n, all_workers_n),
          sep = "/")

Separate a column

# Separate a united column
artists_united %>%
    separate(col = "proportion", into = c("artists_n", "all_workers_n"))
## # A tibble: 3,380 × 7
##    state     race  type  artists_n all_workers_n artists_share location_quotient
##    <chr>     <chr> <chr> <chr>     <chr>                 <dbl>             <dbl>
##  1 Alabama   Hisp… Arch… 45        88165              0.000510             0.875
##  2 Alaska    Hisp… Arch… 15        26875              0.000558             0.957
##  3 Arizona   Hisp… Arch… 270       1033370            0.000261             0.448
##  4 Arkansas  Hisp… Arch… NA        101405            NA                   NA    
##  5 Californ… Hisp… Arch… 3870      7470730            0.000518             0.888
##  6 Colorado  Hisp… Arch… 200       594525             0.000336             0.577
##  7 Connecti… Hisp… Arch… 150       288845             0.000519             0.891
##  8 Delaware  Hisp… Arch… 0         41365             NA                   NA    
##  9 District… Hisp… Arch… 185       44885              0.00412              7.07 
## 10 Florida   Hisp… Arch… 2900      2752995            0.00105              1.81 
## # ℹ 3,370 more rows

Missing Values

# Change type column to occupation and artist values to count to drop na values in artist_n column

artists %>%
    pivot_wider(names_from = type,
                values_from = artists_n) %>%
    pivot_longer(cols = c(6:18),
                 names_to = "occupation",
                 values_to = "count",
                 values_drop_na = TRUE)
## # A tibble: 2,681 × 7
##    state    race  all_workers_n artists_share location_quotient occupation count
##    <chr>    <chr>         <dbl>         <dbl>             <dbl> <chr>      <dbl>
##  1 Alabama  Hisp…         88165      0.000510             0.875 Architects    45
##  2 Alaska   Hisp…         26875      0.000558             0.957 Architects    15
##  3 Arizona  Hisp…       1033370      0.000261             0.448 Architects   270
##  4 Arkansas Hisp…        101405     NA                   NA     Landscape…     0
##  5 Arkansas Hisp…        101405     NA                   NA     Actors         0
##  6 Arkansas Hisp…        101405     NA                   NA     Dancers A…     0
##  7 Califor… Hisp…       7470730      0.000518             0.888 Architects  3870
##  8 Colorado Hisp…        594525      0.000336             0.577 Architects   200
##  9 Connect… Hisp…        288845      0.000519             0.891 Architects   150
## 10 Delaware Hisp…         41365     NA                   NA     Architects     0
## # ℹ 2,671 more rows