R: Extract the 'n'th non-numeric substring from a string.

str_nth_non_numeric {strex} | R Documentation

## Extract the `n`th non-numeric substring from a string.

### Description

Extract the `n`th non-numeric bit of a string where numbers are optionally defined with decimals, scientific notation and commas (as separators, not as an alternative to the decimal point).

- `str_first_non_numeric(...)` is just `str_nth_non_numeric(..., n = 1)`.

- `str_last_non_numeric(...)` is just `str_nth_non_numeric(..., n = -1)`.

### Usage

    str_nth_non_numeric(
      string,
      n,
      decimals = FALSE,
      leading_decimals = decimals,
      negs = FALSE,
      sci = FALSE,
      commas = FALSE
    )

    str_first_non_numeric(
      string,
      decimals = FALSE,
      leading_decimals = decimals,
      negs = FALSE,
      sci = FALSE,
      commas = FALSE
    )

    str_last_non_numeric(
      string,
      decimals = FALSE,
      leading_decimals = decimals,
      negs = FALSE,
      sci = FALSE,
      commas = FALSE
    )

### Arguments

`string` | A string.
`n` | A vector of integerish values. Must be either length 1 or have length equal to the length of `string`. Negative indices count from the back: while `n = 1` and `n = 2` correspond to first and second, `n = -1` and `n = -2` correspond to last and second-last. `n = 0` will return `NA`.
`decimals` | Do you want to include the possibility of decimal numbers (`TRUE`) or not (`FALSE`, the default).
`leading_decimals` | Do you want to allow a leading decimal point to be the start of a number?
`negs` | Do you want to allow negative numbers? Note that double negatives are not handled here (see the examples).
`sci` | Make the search aware of scientific notation e.g. 2e3 is the same as 2000.
`commas` | Allow comma separators in numbers (i.e. interpret 1,100 as a single number (one thousand one hundred) rather than two numbers (one and one hundred)).

### See Also

Other non-numeric extractors: `str_extract_non_numerics()`

### Examples

    strings <- c(
      "abc123def456", "abc-0.12def.345", "abc.12e4def34.5e9",
      "abc1,100def1,230.5", "abc1,100e3,215def4e1,000"
    )
    str_nth_non_numeric(strings, n = 2)
    str_nth_non_numeric(strings, n = -2, decimals = TRUE)
    str_first_non_numeric(strings, decimals = TRUE, leading_decimals = FALSE)
    str_last_non_numeric(strings, commas = TRUE)
    str_nth_non_numeric(strings,
      n = 1, decimals = TRUE, leading_decimals = TRUE,
      sci = TRUE
    )
    str_first_non_numeric(strings,
      decimals = TRUE, leading_decimals = TRUE,
      sci = TRUE, commas = TRUE, negs = TRUE
    )
    str_first_non_numeric(c("22", "1.2.3"), decimals = TRUE)

[Package strex version 1.4.0 Index]