Learn R Programming

sjmisc (version 1.5)

get_labels: Retrieve value labels of labelled data

Description

This function retrieves the value labels of labelled data, which was created with the labelled or haven package, or imported from SPSS, SAS or STATA files (via read_spss, read_sas or read_stata) and
  • ifxis a data frame or list of variables, returns all variables' value labels aslist
  • or, ifxis a vector, returns the value labels as string.

Usage

get_labels(x, attr.only = FALSE, include.values = NULL,
  include.non.labelled = FALSE)

get_val_labels(x, attr.only = FALSE, include.values = NULL, include.non.labelled = FALSE)

Arguments

x
data.frame with variables that have value label attributes (e.g. from an imported SPSS, SAS or STATA data set, via read_spss, read_sas or
attr.only
Logical, if TRUE, labels are only searched for in the the vector's attributes; else, if x has no label attributes, factor levels or string values are returned. See 'Examples'.
include.values
String, indicating whether the values associated with the value labels are returned as well. If include.values = "as.name" (or include.values = "n"), values are set as names attribut
include.non.labelled
Logical, if TRUE, values without labels will also be included in the returned labels.

Value

  • Either a list with all value labels from all variables if x is a data.frame or list; a string with the value labels, if x is a variable; or NULL if no value label attribute was found.

Details

This package can add (and read) value and variable labels either in foreign package style (attributes are named value.labels and variable.label) or in haven package style (attributes are named labels and label). By default, the haven package style is used. Working with labelled data is a key element of the sjPlot package, which accesses these attributes to automatically read label attributes for labelling axis categories and titles or table rows and columns. When working with labelled data, you can, e.g., use get_label or get_labels to get a vector of value and variable labels, which can then be used with other functions like barplot etc. See 'Examples'. Furthermore, value and variable labels are used when saving data, e.g. to SPSS (see write_spss), which means that the written SPSS file contains proper labels for each variable. You can set a default label style (i.e. the names of the label attributes, see above) via options(value_labels = "haven") or options(value_labels = "foreign").

See Also

See package vignettes or http://www.strengejacke.de/sjPlot/{online documentation} for more details; set_labels to manually set value labels, get_label to get variable labels and get_values to retrieve value label associated values.

Examples

Run this code
# import SPSS data set
# mydat <- read_spss("my_spss_data.sav")

# retrieve variable labels
# mydat.var <- get_label(mydat)

# retrieve value labels
# mydat.val <- get_labels(mydat)

data(efc)
get_labels(efc$e42dep)

# simple barplot
barplot(table(efc$e42dep))
# get value labels to annotate barplot
barplot(table(efc$e42dep),
        names.arg = get_labels(efc$e42dep),
        main = get_label(efc$e42dep))

# include associated values
get_labels(efc$e42dep, include.values = "as.name")

# include associated values
get_labels(efc$e42dep, include.values = "as.prefix")

# get labels from multiple variables
get_labels(list(efc$e42dep,
                efc$e16sex,
                efc$e15relat))


# create a dummy factor
f1 <- factor(c("hi", "low", "mid"))
# search for label attributes only
get_labels(f1, attr.only = TRUE)
# search for factor levels as well
get_labels(f1)

# same for character vectors
c1 <- c("higher", "lower", "mid")
# search for label attributes only
get_labels(c1, attr.only = TRUE)
# search for string values as well
get_labels(c1)


# create vector
x <- c(1, 2, 3, 2, 4, NA)
# add less labels than values
x <- set_labels(x, c("yes", "maybe", "no"), force.values = FALSE)
# get labels for labelled values only
get_labels(x)
# get labels for all values
get_labels(x, include.non.labelled = TRUE)

Run the code above in your browser using DataLab