Rename Elements of a List
rename.Rd
See dplyr::rename()
, but for lists.
Rename list elements simply and efficiently.
Missing elements are unchanged and unmatched
elements are ignored.
Arguments
- .data
A named
list
to be renamed.- ...
For
rename()
: <tidy-select
> Usenew_name = old_name
to rename selected variables.For
rename_with()
: additional arguments passed onto.fn
.
Examples
foo <- list(
a = 1:5,
b = letters[1:10L],
c = data.frame(set = 1:4, col = LETTERS[1:4L])
)
# Map all names
rename(foo, super = "b", awesome = "a", wicked = "c")
#> $awesome
#> [1] 1 2 3 4 5
#>
#> $super
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
#>
#> $wicked
#> set col
#> 1 1 A
#> 2 2 B
#> 3 3 C
#> 4 4 D
#>
# Missing names are un-changed
rename(foo, super = "c", wicked = "b")
#> $a
#> [1] 1 2 3 4 5
#>
#> $wicked
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
#>
#> $super
#> set col
#> 1 1 A
#> 2 2 B
#> 3 3 C
#> 4 4 D
#>
# Extra names are ignored
rename(foo, super = "b", wicked = "c", yellow = "d")
#> $a
#> [1] 1 2 3 4 5
#>
#> $super
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
#>
#> $wicked
#> set col
#> 1 1 A
#> 2 2 B
#> 3 3 C
#> 4 4 D
#>
# The !!! is supported
key <- c(super = "b", awesome = "a", wicked = "c")
rename(foo, !!! key)
#> $awesome
#> [1] 1 2 3 4 5
#>
#> $super
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
#>
#> $wicked
#> set col
#> 1 1 A
#> 2 2 B
#> 3 3 C
#> 4 4 D
#>