Skip to contents

Converts factor levels or labelled values to numeric. For factors, uses the underlying integer codes (or the numeric value of levels if they are numeric strings). For labelled variables, extracts the underlying numeric values.

Usage

to_numeric(
  data,
  ...,
  use_labels = TRUE,
  start_at = NULL,
  keep_labels = FALSE,
  use.labels = NULL,
  start.at = NULL,
  keep.labels = NULL
)

Arguments

data

A data frame, tibble, or a single vector.

...

Optional: unquoted variable names (tidyselect supported). If empty, converts all factor columns.

use_labels

If TRUE (default), restores the original codes of a factor created by to_label(), otherwise uses the numeric value of factor levels (e.g., level "3" becomes 3). If FALSE, uses sequential integers (1, 2, 3, ...).

start_at

If not NULL, the lowest numeric value in the output starts at this number. Default: NULL (use original values).

keep_labels

If TRUE, the result is a haven_labelled vector: the former factor levels (or the existing value labels and missing-value types of a labelled input) are kept, so they survive write_spss(). Default: FALSE (plain numeric; missing-value types become NA).

use.labels, start.at, keep.labels

Defunct dot-case argument names, removed in mariposa 0.6.9. Calling the function with any of them is an error; use the snake_case equivalents instead. (The formals are retained only so that the old names error clearly instead of being swallowed by ....)

Value

The input with variables converted to numeric. For single vector input, returns a numeric vector.

Details

This function handles four input types:

  1. Factors from to_label(): Restores the original codes stored in the "codes" attribute, so a to_label() / to_numeric() round trip returns the original values (6, 42, 90, ...) instead of 1, 2, 3.

  2. Numeric factors (levels like "1", "2", "3"): Extracts the numeric values from the level names.

  3. Other text factors (levels like "Male", "Female"): Converts to sequential integers (1, 2, 3, ... in level order). Use use_labels = FALSE to force this behavior for any factor.

  4. haven_labelled: Extracts the underlying numeric vector, stripping the labelled class. Missing-value types of imported data (tagged NAs) become plain NA.

See also

to_label() for the reverse (numeric -> factor), to_labelled() for creating labelled vectors

Other labels: copy_labels(), drop_labels(), find_var(), set_na(), to_character(), to_label(), to_labelled(), unlabel(), val_labels(), var_label()

Examples

# Numeric factor levels -> numeric
x <- factor(c("1", "3", "5", "3"))
to_numeric(x)
#> [1] 1 3 5 3
# [1] 1 3 5 3

# Sequential integers
to_numeric(x, use_labels = FALSE)
#> [1] 1 2 3 2
# [1] 1 2 3 2

# Haven labelled -> plain numeric
to_numeric(survey_data$life_satisfaction)
#>    [1]  4  3  2  2  4  4  3  3  4  3  1  1  2  5  3  2  3  4  3  3  2  5  1  5
#>   [25]  5  2  5  4  5  5  3  3  2  3  5  1 NA  2  3  3  3  2  4  3  3  3  4  3
#>   [49]  2  3  3  4  3  3  3  1  4  4  2  5  2  5  4  2  2  5  2  5  5  3  5 NA
#>   [73]  2  5  3  2  5  3  5  4  5  2  5  5  5  4  4 NA  5  4  4  5  3  4  3  4
#>   [97]  2 NA  5  4  1  4  1  3  4  3  4  2  4  2  4  3 NA  5  2  5 NA  4  4  5
#>  [121]  5  3  3  1  3  1  4  4  5  4  4 NA  5  2  3  5  5  4  5  2  3  5  5  5
#>  [145]  3  4  5  5  3  5  4  4  5  5  5  2  4  5  3  3  4  4  2  4  5  4  2  1
#>  [169]  5  4  3  3  3  4  4  5  4  3  2  4  4  5  4  4  5  4  5  5 NA  2  1  4
#>  [193]  4  5  4  4  5  4  2  4  5  1 NA  4  4 NA  1  3  3  5  4  5  3  3 NA  3
#>  [217]  4  5  2  3  5  5  5  5  5  2  3  2  4  3  3  4  5  5  5  2  5 NA  5  5
#>  [241]  5  5  5  2  2  2  5  4  5  4  3  4  4  5  4  3  5  3 NA  5  5  1  2  5
#>  [265]  4  2  2  3  4  1  4  5  5  1  3  4  5  4  3  5  3  4  3  4  4  4  4  3
#>  [289]  1  4  3  5  4  4  3  5  5  5  5  2  3  2  3  3  5  4  3  5  4  3  3  3
#>  [313]  5  4  3  3  3 NA  5  3  3  1  5  4  4  4  4  5  4  3  4  5  2  4  4  5
#>  [337]  5  4  3  3  5  5  4  3  5  4  2  2  4  5  1  3  2  2  3  3  3  5  5  2
#>  [361]  5  2  3  3  4  4  5  4  5  5  2  5  5  4  5  1 NA  4  2  4  3  5  3  2
#>  [385]  3  3  2  3  3  5  5  5  2  2  2  5  5  4  2  4  4  5  1  1  4  4  3  5
#>  [409]  4  5  5  3  4  4  5  3  4  5  3  1  3  3  5  4  4  4  4  4  2  2  2  4
#>  [433]  3  4  2  3  4  3  1  4  2  4  5  2  3  3  4  5 NA  4  4  5  5  4  2  1
#>  [457]  1  3  3  4 NA  3  2  3  2  4  4  3  4  3  2  5  4  3  3  4  3  4  5  4
#>  [481]  1  2  3  4  3  3  2  3  3  3  4  5  4  5  2  5  5  2  5  4  3  2  3  4
#>  [505]  4  2  2  5  2  2  4  4  5  3  1  4  3  5  4  5 NA  3  2  5  1  3  3  5
#>  [529]  3  4  2  2  3  5  5  3  4  2  5  5  4  5  1  4  5  2  4  5  2 NA  4  4
#>  [553]  5  4  4  2  5  4  4  4  3  4  3  3  4  5  3  5  3  4  5  4  3  5  1  4
#>  [577]  4  5  1  4  3  5  3  4 NA  3  3  3  3  4  5  5  5  3  5  5  4  3  4  4
#>  [601]  3  5  2  5  2  4  5  3  5  2  3  4  3  4  1  4  4  4  5  4  5  3  5  5
#>  [625]  3  4  4  5  3  3  5  5  4  5  3  4  2  4  5  4  5  5  4  5  4  3  4  4
#>  [649]  1  4  2  4  4  5 NA  1  2  4  5  4  4 NA  4  3  5  5  4  5  2  3  5  3
#>  [673]  5  3  4  5  4  4  5  3  3  4  2  5  4  3  2  5  3  3  4  1  5  3  4  4
#>  [697]  4  3  4  4  1  4  5  5  3  5  3  3  5  5  4  1  1  3  3  5 NA  3  5  4
#>  [721]  5  5  5  3  5  1  5  4  4  4  4  3  4  3  5  5  2  5  5  4  3  1  5  3
#>  [745]  3  3  3  2  5  5  4  2  4  2  4  3  3  4  5  5  4  3  3  3  5  5 NA  4
#>  [769]  1  1  3  5  4  5  3  4  2  3  2  5  2  5  5  3  3  5  5  4  5  4  5  3
#>  [793]  4  4  3  3  5  4  5  3  3  3 NA  4  3  4  3  4  1  3  4  5  1  5 NA  2
#>  [817]  3  2  1  5  5  4  5  3  3  5  3  5  1  4  1  5  3  4  3  2  3  4  3  3
#>  [841]  4  5  2  5  5  1  3  2  3  2  4 NA  5  3  4  3  5  2  3  4  5  5  4  5
#>  [865]  5  3  4  5  4  2  3  1  4  5  4  3  5  4  5  5  5  3  2  4  5  5  4  4
#>  [889]  4  2  4  3  1  5  3  4  5  3  4  4  4 NA  4  5  4  4  4  4  3  2  4  4
#>  [913]  5  5  5  4  4  5  5  2  3  5  3  5  2  2  2  3  3  4  3  4  4  4  5  5
#>  [937]  2  5  5  5  5  4  4  3  2  2  4  4  4  2  3  3  3  3  5  5  4  5  4  5
#>  [961]  3  2  5  2  5  3  1  4  2 NA  3  3  2  5  3  2  5  3  4  3  3  4  3  4
#>  [985]  2  5  2  2  3  5  3  5  4  4  4  3  3  5  3  3  4  4  3  3  3  5  4  4
#> [1009]  5  4  5  3  4 NA  2  3  5  3  5  5  1  5  4  3  5  4  3  5  4  3  5  4
#> [1033]  5  3  5  3 NA  1  5  4  4  3  2  3  3  4  3  5  3  5 NA  2  3  5  5  1
#> [1057]  2  5  5  4  3  1  3  5  2  3  4  5  5  4  5  4  3 NA  4  4  2  5  2  4
#> [1081]  5  2  3  4  4  3  2  5  2  4  5  3  5  3  4  2  5  3  4  5  4  4  3  5
#> [1105]  3  2  3  5  5 NA  5  5  5  3  2  5  3  3  3  2  4  3  3  5  4  3  5  5
#> [1129]  3  5  4  4  4  5  4  3  5  3  5  5 NA  4  1  3  5  3  5  4 NA  4  4  4
#> [1153]  4  5  5  4  3  4  2  4  4  4  5  2  5  5  4  3  3  4  2  4  5  5  1  3
#> [1177] NA  2  5  2  4  3  3  2  4  5  4  5  3  3  3  1  2  4  5  3  2  4  1  4
#> [1201]  3  5  5  4  5  3  3  5  3  5  3  5  5  5  1  2  2  4  4  5  3  4  1  5
#> [1225]  3  2  1  1  3  5  5  5  4  2  4  4  2  2 NA  4  2  5  5  4  5  4  3  3
#> [1249]  2  4  3  3  3  3  3  3  2 NA  5  4  2  3  5  5  5  3  5  3  4  3  5  5
#> [1273]  5  2  5  4  4  4  4 NA  5  5  5  4 NA  4  4  5 NA  3  2  5  3  2  4  4
#> [1297]  3  5  4  5  4  5  5  5  2  4  2  3  4  4  4  2  5  3  3  4  4  4 NA  4
#> [1321]  3  5  3  5 NA  4  5  3  5  2  2  5  3  5  4  4  5  4  2  5  4  1  4  3
#> [1345]  4  3  2  2  4  1  4  5  5  4  5  4  1  2  5  5  3  4  4  4  4  5  3  1
#> [1369]  4  3  3  5  3  5  4  5  3  5  4  4  4  3 NA  5  3  4  3  1  5  5  3  3
#> [1393]  4  2  4  5  2  4  4  3  5  2  4  4  4  3  5  5 NA  5  4  2  2  2  4  4
#> [1417]  5  3  4  3  4  4  3  4  5  2  2 NA  4  5  1  5  5  3  5  5  5  4  4  5
#> [1441]  3  5  5  2  3  3  3  5  4  5  2  5  3  4  3  4  5  1  4 NA  4  3  5  4
#> [1465]  3  5  4  3  5  4  2  4  4  4  4  2  2  5  4  3  2  4  2  2  5  4  3  3
#> [1489]  5  4  4  2  4  2  5  5  3  2  4  4  4  4  1  4  2  4  4  4  4  2  2  4
#> [1513]  5  5  3  4  4  3  4  2  3  4  3  5  4  3  4  4  4  5  4  2  2  4  5  3
#> [1537]  3  3  3  4  3  2  5  1  3  3  3  3  5  1  3  3  5  4  1  4  4  3  2  3
#> [1561]  2  1  4  4  5  5  5  3  3  4  5  4  2 NA  5  4  5  2  3  2  3  4  5  3
#> [1585]  4  2  4  4  3  3  2  5  4  2 NA  2  4  4  4  3  2  4  4  3  3  3  4  2
#> [1609]  2  3  3  4  5 NA  5  2  3  4  3  4  3  4  5  2  4  5  3  3  5  4  5  5
#> [1633]  4  1  3  4  3  5  5  3  4 NA  4  4  4  2  5  2  4  3  2  4  3  3  4  4
#> [1657]  3  5  3  4  5  4  5  2  3  5  3  5  4  4  2  4  1  3  5  4  5  3  5  1
#> [1681]  4  5  3  4  4  2  2  5  3  5  5  5  5  4  2  4  3  3  3  2  5  4  1  4
#> [1705]  2 NA  5  4  4  3  2  4  3  4  5  4  4  3  5  4  4  5  5  2  3 NA  4  3
#> [1729]  2  1  3  3  2  4 NA  1  4  5  2  5  3  3  4  4  4  5  3  5  3 NA  5  3
#> [1753]  4  4  3  5  5  2  3  4  4  5  3  5  2  5  5  4  4  5  4  3  3  4  4  5
#> [1777]  3  4  1  5  5  4  4  4  2  4  5  4  4  4  4  5  4  5 NA  5  3  5  5  5
#> [1801]  5  3  5  3  4 NA  2  5  3  2  4  5  3  1  4  4  3  1  2  3  4  4  5  5
#> [1825]  5  2  4  4  5  1  5  3  4  3  4  3  4  3  5  4  5  3  2  5 NA  5  5  3
#> [1849]  4  2  5  1  4  5  4  2  3  3  3  3  3  3  4  4 NA  3  1  4  4  4  3  3
#> [1873]  3  4  4  5  5  3  4 NA  4  3  3  4  5  5  4  4  4  4  3  3  3  5  4  4
#> [1897]  3  2  4  4  4  4  2  4  1  5  2  5  3  5 NA  5  2  5  2  4  1  2  5  3
#> [1921]  4  3  2  3  2  4  4  5  4  5  4  4  5  5  4  2  5  5  4  2  2  5  5  4
#> [1945]  3  5 NA  2  3  4  3  2  4  5  1  4  4  4  5  3  5  5  4  2  2  3  2  4
#> [1969]  5  4  5  1  5  4  4  4  3  3  5  5  4  5  5  4  2  3  3  5  4 NA  5  5
#> [1993]  3  5  5  1  3  4  3  2  4  3  4  5  5  5  5  3  3  3  4  4  3  4  5  4
#> [2017]  5  3  2  3  5  4  4  5  4  3  4  4  5  3  2  4  5  2  4 NA  4  4  3  3
#> [2041]  4  3  4  4  3  3  3  3  5  3  1  3  3  1  2  4  3  3  5  2  5  3  1  3
#> [2065]  5  1  4  4  4  5  5  3  5  4  4  3  5  5  3  5  4  4  3  4  5  2  5  4
#> [2089]  4  4  3  3  4  1  4  3  1  3  3  5  4  4  5  2  3  1  5  4  3  5  1  4
#> [2113]  5  5  4 NA  1  5  5  4  4  2  5  4  3  4  3  3  3  4  3  3  5  3  3  5
#> [2137]  5  5  2  2  3  3  4  5  4  5  1  5  2  4  3  3  4  3  5  3  4  3  5  4
#> [2161]  2  5  3  5  4  5  2  3  5  5  5  3  4  2  5  4  4  5  1  5 NA  4  5  3
#> [2185]  2  4  4  4  3  2  5  4  3  4  4  4  5  2 NA  4  3  3  3  5  2  3  2  3
#> [2209]  4  3  4  5 NA  4  3  4  4  4  5  4  4  3  3  2  3  3  5  4  4  5  2  1
#> [2233]  5  4  2  1  3  3  4  5  4  5  2  5  5  5  4  3  4  2  3  4  4  5  4  5
#> [2257]  4  3  4  5  3  4  2  5  4  1  4  2  4  3  4  4  4  5  4  5  2  5 NA  4
#> [2281]  5  5  3  4 NA  5  3  5  1  3  2  4  5  5  5  2  4  3  1  3  3  5  3  3
#> [2305]  2  4  2  5  2  5  4  5  5  5  3  5  4  4  4  2 NA  2 NA  3  2  3  3  3
#> [2329]  4  4  5  2  4  3  1  2  3  3  2  4  1  4 NA  4  4  3 NA  3  2  5  4  5
#> [2353]  3  3  1  4  2  5  4  1  4  2  4  3  2  3  4  5  5  5  4  3  5  4  2  4
#> [2377] NA  1  5  5  1  1  4  3  4  5  3  2  5  4  3  4  4  3  4  4  3  4  5  3
#> [2401]  4  2  5  5  5  5  4  3  5  5  4  3  3  5  5  3  1  5  5 NA  5  5  4  4
#> [2425]  4  4  3  5  5  3  5  4  4  2  4  5  3  2  4  5  5  5  3  3  4  2  3  5
#> [2449]  3  4 NA  5  5  5  4  3  3  4  3  3  5  5  3  3  4  5  2  4  4  4  3  4
#> [2473]  5  3  4  2  4  5  3  3  3  3  5  3  5  3  2  5  4  4 NA  5  1  5  4  4
#> [2497]  2  4  2  4