R: Extract and replace substrings from a character vector.
str_sub
R Documentation
Extract and replace substrings from a character vector.
Description
str_sub will recycle all arguments to be the same length as the
longest argument. If any arguments are of length 0, the output will be
a zero length character vector.
Usage
str_sub(string, start = 1L, end = -1L)
str_sub(string, start = 1L, end = -1L) <- value
Arguments
string
input character vector.
start,end
Two integer vectors. start gives the position
of the first character (defaults to first), end gives the position
of the last (defaults to last character). Alternatively, pass a two-column
matrix to start.
Negative values count backwards from the last character.
value
replacement string
Details
Substrings are inclusive - they include the characters at both start and
end positions. str_sub(string, 1, -1) will return the complete
substring, from the first character to the last.
Value
A character vector of substring from start to end
(inclusive). Will be length of longest input argument.
See Also
The underlying implementation in stri_sub
Examples
hw <- "Hadley Wickham"
str_sub(hw, 1, 6)
str_sub(hw, end = 6)
str_sub(hw, 8, 14)
str_sub(hw, 8)
str_sub(hw, c(1, 8), c(6, 14))
# Negative indices
str_sub(hw, -1)
str_sub(hw, -7)
str_sub(hw, end = -7)
# Alternatively, you can pass in a two colum matrix, as in the
# output from str_locate_all
pos <- str_locate_all(hw, "[aeio]")[[1]]
str_sub(hw, pos)
str_sub(hw, pos[, 1], pos[, 2])
# Vectorisation
str_sub(hw, seq_len(str_length(hw)))
str_sub(hw, end = seq_len(str_length(hw)))
# Replacement form
x <- "BBCDEF"
str_sub(x, 1, 1) <- "A"; x
str_sub(x, -1, -1) <- "K"; x
str_sub(x, -2, -2) <- "GHIJ"; x
str_sub(x, 2, -2) <- ""; x