Change column order
Use relocate()
to change column positions, using the same syntax as
select()
to make it easy to move blocks of columns at once.
relocate(.data, ..., .before = NULL, .after = NULL)
.data |
A data frame, data frame extension (e.g. a tibble), or a lazy data frame (e.g. from dbplyr or dtplyr). See Methods, below, for more details. |
... |
< |
.before, .after |
< |
An object of the same type as .data
. The output has the following
properties:
Rows are not affected.
The same columns appear in the output, but (usually) in a different place.
Data frame attributes are preserved.
Groups are not affected.
This function is a generic, which means that packages can provide implementations (methods) for other classes. See the documentation of individual methods for extra arguments and differences in behaviour.
The following methods are currently available in loaded packages: no methods found.
df <- tibble(a = 1, b = 1, c = 1, d = "a", e = "a", f = "a") df %>% relocate(f) df %>% relocate(a, .after = c) df %>% relocate(f, .before = b) df %>% relocate(a, .after = last_col()) # relocated columns can change name df %>% relocate(ff = f) # Can also select variables based on their type df %>% relocate(where(is.character)) df %>% relocate(where(is.numeric), .after = last_col()) # Or with any other select helper df %>% relocate(any_of(c("a", "e", "i", "o", "u"))) # When .before or .after refers to multiple variables they will be # moved to be immediately before/after the selected variables. df2 <- tibble(a = 1, b = "a", c = 1, d = "a") df2 %>% relocate(where(is.numeric), .after = where(is.character)) df2 %>% relocate(where(is.numeric), .before = where(is.character))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.