Rev 44870 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/base/man/substr.Rd% Part of the R package, http://www.R-project.org% Copyright 1995-2007 R Core Development Team% Distributed under GPL 2 or later\name{substr}\alias{substr}\alias{substring}\alias{substr<-}\alias{substring<-}\title{Substrings of a Character Vector}\usage{substr(x, start, stop)substring(text, first, last = 1000000)substr(x, start, stop) <- valuesubstring(text, first, last = 1000000) <- value}\arguments{\item{x, text}{a character vector.}\item{start, first}{integer. The first element to be replaced.}\item{stop, last}{integer. The last element to be replaced.}\item{value}{a character vector, recycled if necessary.}}\description{Extract or replace substrings in a character vector.}\details{\code{substring} is compatible with S, with \code{first} and\code{last} instead of \code{start} and \code{stop}.For vector arguments, it expands the arguments cyclically to thelength of the longest \emph{provided} none are of zero length.When extracting, if \code{start} is larger than the string length then\code{""} is returned.For the extraction functions, \code{x} or \code{text} will beconverted to a character vector by \code{\link{as.character}} if it is notalready one.For the replacement functions, if \code{start} is larger than thestring length then no replacement is done. If the portion to bereplaced is longer than the replacement string, then only theportion the length of the string is replaced.If any argument is an \code{NA} element, the corresponding element ofthe answer is \code{NA}.Elements of the result will be have the encoding declared as that ofthe current locale (see \code{\link{Encoding}} if the correspondinginput had a declared encoding and the current locale is either Latin-1or UTF-8.Inputs with embedded nul bytes will be truncated at the first nul.}\value{For \code{substr}, a character vector of the same length and with thesame attributes as \code{x} (after possible coercion).For \code{substring}, a character vector of length the longest of thearguments. This will have names taken from \code{x} (if it has anyafter coercion, repeated as needed), and other attributes copied from\code{x} if it is the longest of the arguments).Elements of \code{x} with a declared encoding (see\code{\link{Encoding}}) will be returned with the same encoding.}\note{The S4 version of \code{substring<-} ignores \code{last}; this versiondoes not.These functions are often used with \code{\link{nchar}} to truncate adisplay. That does not really work (you want to limit the width, notthe number of characters, so it would be better to use\code{\link{strtrim}}), but at least make sure you use\code{nchar(type="c")} (the default since \R 2.6.0).}\references{Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)\emph{The New S Language}.Wadsworth \& Brooks/Cole. (\code{substring}.)}\seealso{\code{\link{strsplit}}, \code{\link{paste}}, \code{\link{nchar}}.}\examples{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}\keyword{character}