Get / Set a variable label
var_label(x, unlist = FALSE)
var_label(x) <- value
set_variable_labels(.data, ..., .labels = NA, .strict = TRUE)
a vector or a data.frame
for data frames, return a named vector instead of a list
a character string or NULL
to remove the label
For data frames, it could also be a named list or a character vector
of same length as the number of columns in x
.
a data frame
name-value pairs of variable labels (see examples)
variable labels to be applied to the data.frame,
using the same syntax as value
in var_label(df) <- value
.
should an error be returned if some labels
doesn't correspond to a column of x
?
set_variable_labels()
will return an updated copy of .data
.
For data frames, if value
is a named list, only elements whose name will
match a column of the data frame will be taken into account. If value
is a character vector, labels should in the same order as the columns of the
data.frame.
set_variable_labels()
could be used with dplyr syntax.
var_label(iris$Sepal.Length)
#> NULL
var_label(iris$Sepal.Length) <- 'Length of the sepal'
if (FALSE) {
View(iris)
}
# To remove a variable label
var_label(iris$Sepal.Length) <- NULL
# To change several variable labels at once
var_label(iris) <- c(
"sepal length", "sepal width", "petal length",
"petal width", "species"
)
var_label(iris)
#> $Sepal.Length
#> [1] "sepal length"
#>
#> $Sepal.Width
#> [1] "sepal width"
#>
#> $Petal.Length
#> [1] "petal length"
#>
#> $Petal.Width
#> [1] "petal width"
#>
#> $Species
#> [1] "species"
#>
var_label(iris) <- list(
Petal.Width = "width of the petal",
Petal.Length = "length of the petal"
)
var_label(iris)
#> $Sepal.Length
#> [1] "sepal length"
#>
#> $Sepal.Width
#> [1] "sepal width"
#>
#> $Petal.Length
#> [1] "length of the petal"
#>
#> $Petal.Width
#> [1] "width of the petal"
#>
#> $Species
#> [1] "species"
#>
var_label(iris, unlist = TRUE)
#> Sepal.Length Sepal.Width Petal.Length
#> "sepal length" "sepal width" "length of the petal"
#> Petal.Width Species
#> "width of the petal" "species"
if (require(dplyr)) {
# adding some variable labels
df <- tibble(s1 = c("M", "M", "F"), s2 = c(1, 1, 2)) %>%
set_variable_labels(s1 = "Sex", s2 = "Yes or No?")
var_label(df)
# removing a variable label
df <- df %>% set_variable_labels(s2 = NULL)
var_label(df$s2)
# Set labels from dictionary, e.g. as read from external file
# One description is missing, one has no match
description = tibble(
name = c(
"Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width",
"Something"),
label = c(
"Sepal length", "Sepal width", "Petal length", "Petal width",
"something")
)
var_labels <- setNames(as.list(description$label), description$name)
iris_labelled <- iris %>%
set_variable_labels(.labels = var_labels, .strict = FALSE)
var_label(iris_labelled)
# defining variable labels derived from variable names
if (require(snakecase)) {
iris <- iris %>%
set_variable_labels(.labels = to_sentence_case(names(iris)))
var_label(iris)
}
}
#> Loading required package: snakecase
#> $Sepal.Length
#> [1] "Sepal length"
#>
#> $Sepal.Width
#> [1] "Sepal width"
#>
#> $Petal.Length
#> [1] "Petal length"
#>
#> $Petal.Width
#> [1] "Petal width"
#>
#> $Species
#> [1] "Species"
#>