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.

See also


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 #> 1: 1 1 #> 2: 2 2
#> strategy_id grp_id #> 1: s1 g1 #> 2: s2 g2
#> strategy_id grp_id strategy_name grp_name #> 1: 1 1 s1 g1 #> 2: 2 2 s2 g2