library(tidyverse)

Documentation Code

This section has the code for the select() documentation.

Simple Examples

tib <- tribble(~a, ~b, ~c, ~d,
                1,  2,  3,  4,
                5,  6,  7,  8)
print(tib)
## # A tibble: 2 x 4
##       a     b     c     d
##   <dbl> <dbl> <dbl> <dbl>
## 1     1     2     3     4
## 2     5     6     7     8
glimpse(tib)
## Rows: 2
## Columns: 4
## $ a <dbl> 1, 5
## $ b <dbl> 2, 6
## $ c <dbl> 3, 7
## $ d <dbl> 4, 8
t1 <- select(tib, -b, -c)

print(t1)
## # A tibble: 2 x 2
##       a     d
##   <dbl> <dbl>
## 1     1     4
## 2     5     8
select(tib, d, c)
## # A tibble: 2 x 2
##       d     c
##   <dbl> <dbl>
## 1     4     3
## 2     8     7
tib <- select(tib, 
              X1 = d,
              X2 = c,
              a)
print(tib)
## # A tibble: 2 x 3
##      X1    X2     a
##   <dbl> <dbl> <dbl>
## 1     4     3     1
## 2     8     7     5
tibble_name <- tribble(~a, ~x, ~y, ~z,
                        1,  2,  3,  4,
                        5,  6,  7,  8)
select(tibble_name, x, y, z, everything())
## # A tibble: 2 x 4
##       x     y     z     a
##   <dbl> <dbl> <dbl> <dbl>
## 1     2     3     4     1
## 2     6     7     8     5
tibble_name <- tribble(~a, ~g, ~h, ~m,
                        1,  2,  3,  4,
                        5,  6,  7,  8)
select(tibble_name,
       a,           #include column a
       g:m      #include columns g through m
)
## # A tibble: 2 x 4
##       a     g     h     m
##   <dbl> <dbl> <dbl> <dbl>
## 1     1     2     3     4
## 2     5     6     7     8
select(tibble_name,
       -(g:m)       #drop columns g through m. The parentheses are necessary!
)
## # A tibble: 2 x 1
##       a
##   <dbl>
## 1     1
## 2     5
tib %>% select(where(~is.numeric(.)  ))   #also is.character or is.factor
## # A tibble: 2 x 3
##      X1    X2     a
##   <dbl> <dbl> <dbl>
## 1     4     3     1
## 2     8     7     5
tib %>% select(where(~(mean(.) > 10) ))   #the ~ and . are required
## # A tibble: 2 x 0

Advanced Examples

tib <- tibble(a=1, b=1, d=1, e=1, f=1, g=1, h=1,
              age_m=1, ss_m=1, age_f=1, ss_f=1,
              yr21=1, yr22=1, x=1, y=1,z=1)
tib %>% 
  select(c(x,y,
           f:h,
           last_col(),
           starts_with("yr"),
           ends_with("_m"),
           contains("_"),
           matches("^[b-d]"),
           everything()
        ))
## # A tibble: 1 x 16
##       x     y     f     g     h     z  yr21  yr22 age_m  ss_m age_f  ss_f     b
##   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1     1     1     1     1     1     1     1     1     1     1     1     1     1
## # ... with 3 more variables: d <dbl>, a <dbl>, e <dbl>
tib %>% 
  select(-c(x,y,
            f:h,
            last_col(),
            starts_with("yr"),
            ends_with("_m"),
            contains("_"),
            matches("^[b-d]")
         ))
## # A tibble: 1 x 2
##       a     e
##   <dbl> <dbl>
## 1     1     1