substr                 package:base                 R Documentation

_S_u_b_s_t_r_i_n_g_s _o_f _a _C_h_a_r_a_c_t_e_r _V_e_c_t_o_r

_D_e_s_c_r_i_p_t_i_o_n:

     Extract or replace substrings in a character vector.

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

 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.

_D_e_t_a_i_l_s:

     `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.

_V_a_l_u_e:

     For `substr', a character vector of the same length as `x'.

     For `substring', a character vector of length the longest of the
     arguments.

_N_o_t_e:

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

_S_e_e _A_l_s_o:

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

_E_x_a_m_p_l_e_s:

     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

