A fast substitute for dplyr::rename
. setrename
renames objects by reference. These functions also work with objects other than data frames that have a 'names' attribute. relabel
and setrelabel
do that same for labels attached to list elements / data frame columns.
frename(.x, …, cols = NULL)
rnm(.x, …, cols = NULL) # Shortcut for frename()setrename(.x, …, cols = NULL)
relabel(.x, …, cols = NULL, attrn = "label")
setrelabel(.x, …, cols = NULL, attrn = "label")
an R object with a 'names' attribute.
either tagged vector expressions of the form name = newname
/ name = newlabel
, or a single function (+ optional arguments to the function) applied to all names/labels (of columns/elements selected in cols
).
If …
is a function, select a subset of columns/elements to rename/relabel using names, indices, a logical vector or a function applied to the columns if .x
is a data frame (e.g. is.numeric
).
character. Name of attribute to store labels or retrieve labels from.
.x
renamed / relabelled. setrename
and setrelabel
return .x
invisibly.
# NOT RUN {
## Using tagged expressions
head(frename(iris, Sepal.Length = SL, Sepal.Width = SW,
Petal.Length = PL, Petal.Width = PW))
head(frename(iris, Sepal.Length = "S L", Sepal.Width = "S W",
Petal.Length = "P L", Petal.Width = "P W"))
## Using a function
head(frename(iris, tolower))
head(frename(iris, tolower, cols = 1:2))
head(frename(iris, tolower, cols = is.numeric))
head(frename(iris, paste, "new", sep = "_", cols = 1:2))
## Renaming by reference
# setrename(iris, tolower)
# head(iris)
# rm(iris)
## Relabelling (by reference)
# namlab(relabel(wlddev, PCGDP = "GDP per Capita", LIFEEX = "Life Expectancy"))
# namlab(relabel(wlddev, toupper))
# }
Run the code above in your browser using DataLab