top of page

relocate() function in tidyverse


library(tidyverse)
mpg %>% 
  head(10)
## # A tibble: 10 x 11
##    manufacturer model    displ  year   cyl trans   drv     cty   hwy fl    class
##    <chr>        <chr>    <dbl> <int> <int> <chr>   <chr> <int> <int> <chr> <chr>
##  1 audi         a4         1.8  1999     4 auto(l~ f        18    29 p     comp~
##  2 audi         a4         1.8  1999     4 manual~ f        21    29 p     comp~
##  3 audi         a4         2    2008     4 manual~ f        20    31 p     comp~
##  4 audi         a4         2    2008     4 auto(a~ f        21    30 p     comp~
##  5 audi         a4         2.8  1999     6 auto(l~ f        16    26 p     comp~
##  6 audi         a4         2.8  1999     6 manual~ f        18    26 p     comp~
##  7 audi         a4         3.1  2008     6 auto(a~ f        18    27 p     comp~
##  8 audi         a4 quat~   1.8  1999     4 manual~ 4        18    26 p     comp~
##  9 audi         a4 quat~   1.8  1999     4 auto(l~ 4        16    25 p     comp~
## 10 audi         a4 quat~   2    2008     4 manual~ 4        20    28 p     comp~

Relocating columns by names


mpg %>% 
  select(model, manufacturer, class, year) %>% 
  head(10)

## # A tibble: 10 x 4
##    model      manufacturer class    year
##    <chr>      <chr>        <chr>   <int>
##  1 a4         audi         compact  1999
##  2 a4         audi         compact  1999
##  3 a4         audi         compact  2008
##  4 a4         audi         compact  2008
##  5 a4         audi         compact  1999
##  6 a4         audi         compact  1999
##  7 a4         audi         compact  2008
##  8 a4 quattro audi         compact  1999
##  9 a4 quattro audi         compact  1999
## 10 a4 quattro audi         compact  2008

mpg %>% 
  relocate(model, manufacturer, class, year) %>% 
  head(10)
## # A tibble: 10 x 11
##    model    manufacturer class  year displ   cyl trans   drv     cty   hwy fl   
##    <chr>    <chr>        <chr> <int> <dbl> <int> <chr>   <chr> <int> <int> <chr>
##  1 a4       audi         comp~  1999   1.8     4 auto(l~ f        18    29 p    
##  2 a4       audi         comp~  1999   1.8     4 manual~ f        21    29 p    
##  3 a4       audi         comp~  2008   2       4 manual~ f        20    31 p    
##  4 a4       audi         comp~  2008   2       4 auto(a~ f        21    30 p    
##  5 a4       audi         comp~  1999   2.8     6 auto(l~ f        16    26 p    
##  6 a4       audi         comp~  1999   2.8     6 manual~ f        18    26 p    
##  7 a4       audi         comp~  2008   3.1     6 auto(a~ f        18    27 p    
##  8 a4 quat~ audi         comp~  1999   1.8     4 manual~ 4        18    26 p    
##  9 a4 quat~ audi         comp~  1999   1.8     4 auto(l~ 4        16    25 p    
## 10 a4 quat~ audi         comp~  2008   2       4 manual~ 4        20    28 p

mpg %>% 
  relocate(year,.before = model) %>% 
  head(10)

## # A tibble: 10 x 11
##    manufacturer  year model    displ   cyl trans   drv     cty   hwy fl    class
##    <chr>        <int> <chr>    <dbl> <int> <chr>   <chr> <int> <int> <chr> <chr>
##  1 audi          1999 a4         1.8     4 auto(l~ f        18    29 p     comp~
##  2 audi          1999 a4         1.8     4 manual~ f        21    29 p     comp~
##  3 audi          2008 a4         2       4 manual~ f        20    31 p     comp~
##  4 audi          2008 a4         2       4 auto(a~ f        21    30 p     comp~
##  5 audi          1999 a4         2.8     6 auto(l~ f        16    26 p     comp~
##  6 audi          1999 a4         2.8     6 manual~ f        18    26 p     comp~
##  7 audi          2008 a4         3.1     6 auto(a~ f        18    27 p     comp~
##  8 audi          1999 a4 quat~   1.8     4 manual~ 4        18    26 p     comp~
##  9 audi          1999 a4 quat~   1.8     4 auto(l~ 4        16    25 p     comp~
## 10 audi          2008 a4 quat~   2       4 manual~ 4        20    28 p     comp~


mpg %>% 
  relocate(cyl,.after = trans) %>% 
  head(10)
## # A tibble: 10 x 11
##    manufacturer model    displ  year trans     cyl drv     cty   hwy fl    class
##    <chr>        <chr>    <dbl> <int> <chr>   <int> <chr> <int> <int> <chr> <chr>
##  1 audi         a4         1.8  1999 auto(l~     4 f        18    29 p     comp~
##  2 audi         a4         1.8  1999 manual~     4 f        21    29 p     comp~
##  3 audi         a4         2    2008 manual~     4 f        20    31 p     comp~
##  4 audi         a4         2    2008 auto(a~     4 f        21    30 p     comp~
##  5 audi         a4         2.8  1999 auto(l~     6 f        16    26 p     comp~
##  6 audi         a4         2.8  1999 manual~     6 f        18    26 p     comp~
##  7 audi         a4         3.1  2008 auto(a~     6 f        18    27 p     comp~
##  8 audi         a4 quat~   1.8  1999 manual~     4 4        18    26 p     comp~
##  9 audi         a4 quat~   1.8  1999 auto(l~     4 4        16    25 p     comp~
## 10 audi         a4 quat~   2    2008 manual~     4 4        20    28 p     comp~

mpg %>% 
  relocate(manufacturer, .after = last_col()) %>% 
  head(10)
## # A tibble: 10 x 11
##    model    displ  year   cyl trans   drv     cty   hwy fl    class manufacturer
##    <chr>    <dbl> <int> <int> <chr>   <chr> <int> <int> <chr> <chr> <chr>       
##  1 a4         1.8  1999     4 auto(l~ f        18    29 p     comp~ audi        
##  2 a4         1.8  1999     4 manual~ f        21    29 p     comp~ audi        
##  3 a4         2    2008     4 manual~ f        20    31 p     comp~ audi        
##  4 a4         2    2008     4 auto(a~ f        21    30 p     comp~ audi        
##  5 a4         2.8  1999     6 auto(l~ f        16    26 p     comp~ audi        
##  6 a4         2.8  1999     6 manual~ f        18    26 p     comp~ audi        
##  7 a4         3.1  2008     6 auto(a~ f        18    27 p     comp~ audi        
##  8 a4 quat~   1.8  1999     4 manual~ 4        18    26 p     comp~ audi        
##  9 a4 quat~   1.8  1999     4 auto(l~ 4        16    25 p     comp~ audi        
## 10 a4 quat~   2    2008     4 manual~ 4        20    28 p     comp~ audi


mpg %>% 
  relocate(manufacturer, .after = last_col(offset = 3)) %>% 
  head(10)
## # A tibble: 10 x 11
##    model    displ  year   cyl trans   drv     cty manufacturer   hwy fl    class
##    <chr>    <dbl> <int> <int> <chr>   <chr> <int> <chr>        <int> <chr> <chr>
##  1 a4         1.8  1999     4 auto(l~ f        18 audi            29 p     comp~
##  2 a4         1.8  1999     4 manual~ f        21 audi            29 p     comp~
##  3 a4         2    2008     4 manual~ f        20 audi            31 p     comp~
##  4 a4         2    2008     4 auto(a~ f        21 audi            30 p     comp~
##  5 a4         2.8  1999     6 auto(l~ f        16 audi            26 p     comp~
##  6 a4         2.8  1999     6 manual~ f        18 audi            26 p     comp~
##  7 a4         3.1  2008     6 auto(a~ f        18 audi            27 p     comp~
##  8 a4 quat~   1.8  1999     4 manual~ 4        18 audi            26 p     comp~
##  9 a4 quat~   1.8  1999     4 auto(l~ 4        16 audi            25 p     comp~
## 10 a4 quat~   2    2008     4 manual~ 4        20 audi            28 p     comp~

Relocating by data type.


mpg %>% 
  relocate(where(is.numeric)) %>% 
  head(10)
## # A tibble: 10 x 11
##    displ  year   cyl   cty   hwy manufacturer model    trans   drv   fl    class
##    <dbl> <int> <int> <int> <int> <chr>        <chr>    <chr>   <chr> <chr> <chr>
##  1   1.8  1999     4    18    29 audi         a4       auto(l~ f     p     comp~
##  2   1.8  1999     4    21    29 audi         a4       manual~ f     p     comp~
##  3   2    2008     4    20    31 audi         a4       manual~ f     p     comp~
##  4   2    2008     4    21    30 audi         a4       auto(a~ f     p     comp~
##  5   2.8  1999     6    16    26 audi         a4       auto(l~ f     p     comp~
##  6   2.8  1999     6    18    26 audi         a4       manual~ f     p     comp~
##  7   3.1  2008     6    18    27 audi         a4       auto(a~ f     p     comp~
##  8   1.8  1999     4    18    26 audi         a4 quat~ manual~ 4     p     comp~
##  9   1.8  1999     4    16    25 audi         a4 quat~ auto(l~ 4     p     comp~
## 10   2    2008     4    20    28 audi         a4 quat~ manual~ 4     p     comp~

mpg %>% 
  relocate(where(is.character)) %>% 
  head(10)
## # A tibble: 10 x 11
##    manufacturer model    trans   drv   fl    class displ  year   cyl   cty   hwy
##    <chr>        <chr>    <chr>   <chr> <chr> <chr> <dbl> <int> <int> <int> <int>
##  1 audi         a4       auto(l~ f     p     comp~   1.8  1999     4    18    29
##  2 audi         a4       manual~ f     p     comp~   1.8  1999     4    21    29
##  3 audi         a4       manual~ f     p     comp~   2    2008     4    20    31
##  4 audi         a4       auto(a~ f     p     comp~   2    2008     4    21    30
##  5 audi         a4       auto(l~ f     p     comp~   2.8  1999     6    16    26
##  6 audi         a4       manual~ f     p     comp~   2.8  1999     6    18    26
##  7 audi         a4       auto(a~ f     p     comp~   3.1  2008     6    18    27
##  8 audi         a4 quat~ manual~ 4     p     comp~   1.8  1999     4    18    26
##  9 audi         a4 quat~ auto(l~ 4     p     comp~   1.8  1999     4    16    25
## 10 audi         a4 quat~ manual~ 4     p     comp~   2    2008     4    20    28

relocate with tidyselect


mpg %>% 
  relocate(contains("d"),.before = year) %>%
  head(10)
## # A tibble: 10 x 11
##    manufacturer model    displ drv    year   cyl trans     cty   hwy fl    class
##    <chr>        <chr>    <dbl> <chr> <int> <int> <chr>   <int> <int> <chr> <chr>
##  1 audi         a4         1.8 f      1999     4 auto(l~    18    29 p     comp~
##  2 audi         a4         1.8 f      1999     4 manual~    21    29 p     comp~
##  3 audi         a4         2   f      2008     4 manual~    20    31 p     comp~
##  4 audi         a4         2   f      2008     4 auto(a~    21    30 p     comp~
##  5 audi         a4         2.8 f      1999     6 auto(l~    16    26 p     comp~
##  6 audi         a4         2.8 f      1999     6 manual~    18    26 p     comp~
##  7 audi         a4         3.1 f      2008     6 auto(a~    18    27 p     comp~
##  8 audi         a4 quat~   1.8 4      1999     4 manual~    18    26 p     comp~
##  9 audi         a4 quat~   1.8 4      1999     4 auto(l~    16    25 p     comp~
## 10 audi         a4 quat~   2   4      2008     4 manual~    20    28 p     comp~





Comentarios


bottom of page