Learn R Programming

sjmisc (version 2.0.1)

dicho: Dichotomize variables

Description

Dichotomizes variables into dummy variables (0/1). Dichotomization is either done by median, mean or a specific value (see dich.by). Either single vectors, a complete data frame or a list of variables can be dichotomized.

Usage

dicho(x, dich.by = "median", as.num = FALSE, var.label = NULL, val.labels = NULL)

Arguments

x
Variable (vector), data.frame or list of variables that should be dichotomized
dich.by
Indicates the split criterion where a variable is dichotomized. Must be one of the following values (may be abbreviated):
as.num
Logical, if TRUE, return value will be numeric, not a factor.
var.label
Optional string, to set variable label attribute for the returned variable (see set_label). If NULL (default), variable label attribute of x will be used (if present). If empty, variable label attributes will be removed.
val.labels
Optional character vector (of length two), to set value label attributes of dichotomized variable (see set_labels). If NULL (default), no value labels will be set.

Value

A dichotomized factor (or numeric, if as.num = TRUE) variable (0/1-coded), respectively a data frame or list of dichotomized factor (or numeric) variables.

Examples

Run this code
data(efc)
summary(efc$c12hour)
# split at median
table(dicho(efc$c12hour))
# split at mean
table(dicho(efc$c12hour, "mean"))
# split between value lowest to 30, and above 30
table(dicho(efc$c12hour, 30))

# sample data frame, values from 1-4
head(efc[, 6:10])

# dichtomized values (1 to 2 = 0, 3 to 4 = 1)
library(dplyr)
efc %>%
  select(6:10) %>%
  dicho(dich.by = 2) %>%
  head()

# dichtomize several variables in a list
dummy <- list(efc$c12hour, efc$e17age, efc$c160age)
dicho(dummy)

# dichotomize and set labels
frq(dicho(efc$e42dep, var.label = "Dependency (dichotomized)",
          val.labels = c("lower", "higher")))

Run the code above in your browser using DataLab