R: Substrings of a Character Vector

substr {base} | R Documentation

## Substrings of a Character Vector

### Description

Extract or replace substrings in a character vector.

### Usage

    substr(x, start, stop)
    substring(text, first, last = 1000000)
    substr(x, start, stop) <- value
    substring(text, first, last = 1000000) <- value

### Arguments

`x, text` | a character vector
`start, first` | integer. The first element to be replaced.
`stop, last` | integer. The last element to be replaced.
`value` | a character vector, recycled if necessary.

### Details

`substring` is compatible with S, with `first` and `last` instead of `start` and `stop`. For vector arguments, it expands the arguments cyclically to the length of the longest.

When extracting, if `start` is larger than the string length then `""` is returned.

For the replacement functions, if `start` is larger than the string length then no replacement is done. If the portion to be replaced is longer than the replacement string, then only the portion the length of the string is replaced.

### Value

For `substr`, a character vector of the same length as `x`.
For `substring`, a character vector of length the longest of the arguments.

### Note

The S4 version of `substring<-` ignores `last`; this version does not.

### See Also

`strsplit`, `paste`, `nchar`.

### Examples

    substr("abcdef",2,4)
    print(ss <- substring("abcdef",1:6,1:6))
    stopifnot(ss == strsplit ("abcdef",NULL)[[1]])
    ## strsplit is more efficient ...

    substr(rep("abcdef",4),1:4,4:5)
    x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
    stopifnot(substr(x, 2, 5) == substring(x, 2, 5))
    substr(x, 2, 5)
    substring(x, 2, 4:6)

    substring(x, 2) <- c("..", "+++")
    x

[Package Contents]