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)
col_number()
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?
A numeric vector (double) of parsed numbers.
Other parsers:
col_skip()
,
cols_condense()
,
cols()
,
parse_datetime()
,
parse_factor()
,
parse_guess()
,
parse_logical()
,
parse_vector()
## These all return 1000
parse_number("$1,000") ## leading `$` and grouping character `,` ignored
#> [1] 1000
parse_number("euro1,000") ## leading non-numeric euro ignored
#> [1] 1000
parse_number("t1000t1000") ## only parses first number found
#> [1] 1000
parse_number("1,234.56")
#> [1] 1234.56
## explicit locale specifying European grouping and decimal marks
parse_number("1.234,56", locale = locale(decimal_mark = ",", grouping_mark = "."))
#> [1] 1234.56
## SI/ISO 31-0 standard spaces for number grouping
parse_number("1 234.56", locale = locale(decimal_mark = ".", grouping_mark = " "))
#> [1] 1234.56
## Specifying strings for NAs
parse_number(c("1", "2", "3", "NA"))
#> [1] 1 2 3 NA
parse_number(c("1", "2", "3", "NA", "Nothing"), na = c("NA", "Nothing"))
#> [1] 1 2 3 NA NA