strwrap                 package:base                 R Documentation

_W_r_a_p _C_h_a_r_a_c_t_e_r _S_t_r_i_n_g_s _t_o _F_o_r_m_a_t _P_a_r_a_g_r_a_p_h_s

_D_e_s_c_r_i_p_t_i_o_n:

     Each character string in the input is first split into paragraphs
     (on lines containing whitespace only).  The paragraphs are then
     formatted by breaking lines at word boundaries.  The target
     columns for wrapping lines and the indentation of the first and
     all subsequent lines of a paragraph can be controlled
     independently.

_U_s_a_g_e:

     strwrap(x, width = 0.9 * getOption("width"), indent = 0,
             exdent = 0, prefix = "", simplify = TRUE)

_A_r_g_u_m_e_n_t_s:

       x: a character vector, or an object which can be converted to a
          character vector by 'as.character'.

   width: a positive integer giving the target column for wrapping
          lines in the output.

  indent: a non-negative integer giving the indentation of the first
          line in a paragraph.

  exdent: a non-negative integer specifying the indentation of
          subsequent lines in paragraphs.

  prefix: a character string to be used as prefix for each line.

simplify: a logical.  If 'TRUE', the result is a single character
          vector of line text; otherwise, it is a list of the same
          length as 'x' the elements of which are character vectors of
          line text obtained from the corresponding element of 'x'.
          (Hence, the result in the former case is obtained by
          unlisting that of the latter.)

_D_e_t_a_i_l_s:

     Whitespace in the input is destroyed.  Double spaces after periods
     (thought as representing sentence ends) are preserved.  Currently,
     possible sentence ends at line breaks are not considered
     specially.

     Indentation is relative to the number of characters in the prefix
     string.

_E_x_a_m_p_l_e_s:

     ## Read in file 'THANKS'.
     x <- paste(readLines(file.path(R.home("doc"), "THANKS")), collapse = "\n")
     ## Split into paragraphs and remove the first three ones
     x <- unlist(strsplit(x, "\n[ \t\n]*\n"))[-(1:3)]
     ## Join the rest
     x <- paste(x, collapse = "\n\n")
     ## Now for some fun:
     writeLines(strwrap(x, width = 60))
     writeLines(strwrap(x, width = 60, indent = 5))
     writeLines(strwrap(x, width = 60, exdent = 5))
     writeLines(strwrap(x, prefix = "THANKS> "))

     ## Note that messages are wrapped AT the target column indicated by
     ## 'width' (and not beyond it).
     ## From an R-devel posting by J. Hosking <jh910@juno.com>.
     x <- paste(sapply(sample(10, 100, rep=TRUE),
                function(x) substring("aaaaaaaaaa", 1, x)), collapse = " ")
     sapply(10:40,
            function(m)
            c(target = m, actual = max(nchar(strwrap(x, m)))))

