Update existing variables or create new ones that replace existing values
with more informative labels as in factor()
. All modifications are performed
by reference (see data.table::set()
for more information about assignment by
reference).
set_labels(x, labels, new_names = NULL, as_factor = TRUE)
A data.table
.
A list of named vectors containing the values and labels of
variables. The elements of each vector are the values of a variable and the
names are the labels. The names of the list are the names of the variables.
See the output returned by get_labels()
for an example.
A character vector of the same length as labels
where
each element denotes the name of a new variable to create for the
corresponding element in labels
. If NULL
, then the variables in labels
are modified and no new variables are created; otherwise, the existing variables
are not modified and new variables are created instead.
If TRUE
factor variables are created; otherwise character
vectors are created.
x
is modified by reference and returned invisibly.
library("data.table")
labs <- list("strategy_id" = c("s1" = 1,
"s2" = 2),
"grp_id" = c("g1" = 1,
"g2" = 2))
d1 <- data.table(strategy_id = 1:2, grp_id = 1:2)
d2 <- copy(d1); d3 <- copy(d2)
set_labels(d2, labels = labs)
set_labels(d3, labels = labs, new_names = c("strategy_name", "grp_name"))
d1
#> strategy_id grp_id
#> <int> <int>
#> 1: 1 1
#> 2: 2 2
d2
#> strategy_id grp_id
#> <fctr> <fctr>
#> 1: s1 g1
#> 2: s2 g2
d3
#> strategy_id grp_id strategy_name grp_name
#> <int> <int> <fctr> <fctr>
#> 1: 1 1 s1 g1
#> 2: 2 2 s2 g2