readr (version 2.1.5)

parse_number: Parse numbers, flexibly


This parses the first number it finds, dropping any non-numeric characters before the first number and all characters after the first number. The grouping mark specified by the locale is ignored inside the number.


parse_number(x, na = c("", "NA"), locale = default_locale(), trim_ws = TRUE)



A numeric vector (double) of parsed numbers.



Character vector of values to parse.


Character vector of strings to interpret as missing values. Set this option to character() to indicate no missing values.


The locale controls defaults that vary from place to place. The default locale is US-centric (like R), but you can use locale() to create your own locale that controls things like the default time zone, encoding, decimal mark, big mark, and day/month names.


Should leading and trailing whitespace (ASCII spaces and tabs) be trimmed from each field before parsing it?

See Also

Other parsers: col_skip(), cols_condense(), cols(), parse_datetime(), parse_factor(), parse_guess(), parse_logical(), parse_vector()


Run this code
## These all return 1000
parse_number("$1,000") ## leading `$` and grouping character `,` ignored
parse_number("euro1,000") ## leading non-numeric euro ignored
parse_number("t1000t1000") ## only parses first number found

## explicit locale specifying European grouping and decimal marks
parse_number("1.234,56", locale = locale(decimal_mark = ",", grouping_mark = "."))
## SI/ISO 31-0 standard spaces for number grouping
parse_number("1 234.56", locale = locale(decimal_mark = ".", grouping_mark = " "))

## Specifying strings for NAs
parse_number(c("1", "2", "3", "NA"))
parse_number(c("1", "2", "3", "NA", "Nothing"), na = c("NA", "Nothing"))

Run the code above in your browser using DataCamp Workspace