R: Add variable label(s) to variables

set_label {sjlabelled} | R Documentation

## Add variable label(s) to variables

### Description

This function adds variable labels as attribute (named `"label"`) to the variable `x`, resp. to a set of variables in a data frame or a list-object. `var_labels()` is intended for use within pipe-workflows and has a tidyverse-consistent syntax (see 'Examples').

### Usage

    set_label(x, label)

    set_label(x) <- value

    var_labels(x, ...)

### Arguments

`x` | Variable (vector), list of variables or a data frame where variables labels should be added as attribute. For `var_labels()`, `x` must be a data frame only.
`label` | If `x` is a vector (single variable), use a single character string with the variable label for `x`. If `x` is a data frame, use a vector with character labels of same length as `ncol(x)`. Use `label = ""` to remove labels-attribute from `x`, resp. set any value of vector `label` to `""` to remove specific variable label attributes from a data frame's variable.
`value` | See `label`.
`...` | Pairs of named vectors, where the name equals the variable name, which should be labelled, and the value is the new variable label.

### Details

See 'Details' in `get_labels`

### Value

`x`, with variable label attribute(s), which contains the variable name(s); or with removed label-attribute if `label = ""`.

### Note

See 'Note' in `get_labels`

### See Also

See vignette Labelled Data and the sjlabelled-Package for more details; `set_labels` to manually set value labels or `get_label` to get variable labels.

### Examples

    # manually set value and variable labels
    dummy <- sample(1:4, 40, replace = TRUE)
    dummy <- set_labels(dummy, labels = c("very low", "low", "mid", "hi"))
    dummy <- set_label(dummy, label = "Dummy-variable")

    # or use:
    # set_label(dummy) <- "Dummy-variable"

    # auto-detection of value labels by default, auto-detection of
    # variable labels if argument "title" set to NULL.
    ## Not run:
    library(sjPlot)
    sjp.frq(dummy, title = NULL)
    ## End(Not run)

    # Set variable labels for data frame
    dummy <- data.frame(a = sample(1:4, 10, replace = TRUE),
                        b = sample(1:4, 10, replace = TRUE),
                        c = sample(1:4, 10, replace = TRUE))
    dummy <- set_label(dummy, c("Variable A", "Variable B", "Variable C"))
    str(dummy)

    # remove one variable label
    dummy <- set_label(dummy, c("Variable A", "", "Variable C"))
    str(dummy)

    # setting same variable labels to multiple vectors

    # create a set of dummy variables
    dummy1 <- sample(1:4, 40, replace = TRUE)
    dummy2 <- sample(1:4, 40, replace = TRUE)
    dummy3 <- sample(1:4, 40, replace = TRUE)
    # put them in list-object
    dummies <- list(dummy1, dummy2, dummy3)
    # and set variable labels for all three dummies
    dummies <- set_label(dummies, c("First Dummy", "2nd Dummy", "Third dummy"))
    # see result...
    get_label(dummies)

    # use 'var_labels()' to set labels within a pipe-workflow, and
    # when you need "tidyverse-consistent" api.
    # Set variable labels for data frame
    dummy <- data.frame(a = sample(1:4, 10, replace = TRUE),
                        b = sample(1:4, 10, replace = TRUE),
                        c = sample(1:4, 10, replace = TRUE))

    dummy %>%
      var_labels(a = "First variable", c = "third variable") %>%
      get_label()

[Package sjlabelled version 1.0.10 Index]