ID EN
String Functions

substr

R Base 3.6.2

Extract or replace substrings in a character vector.

Syntax

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

Arguments

Parameter Description
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.

Return Value

For substr, a character vector of the same length and with the same attributes as x (after possible coercion). For substring, a character vector of length the longest of the arguments. This will have names taken from x (if it has any after coercion, repeated as needed), and other attributes copied from x if it is the longest of the arguments). Elements of x with a declared encoding (see Encoding) will be returned with the same encoding.

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 provided none are of zero length. When extracting, if start is larger than the string length then "" is returned. For the extraction functions, x or text will be converted to a character vector by as.character if it is not already one. 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. If any argument is an NA element, the corresponding element of the answer is NA. Elements of the result will be have the encoding declared as that of the current local

Examples

Example
R
# NOT RUN {
substr("abcdef", 2, 4)
substring("abcdef", 1:6, 1:6)
## strsplit is more efficient ...

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

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

See Also

strsplit paste nchar.