nchar                  package:base                  R Documentation

_C_o_u_n_t _t_h_e _N_u_m_b_e_r _o_f _C_h_a_r_a_c_t_e_r_s (_o_r _B_y_t_e_s _o_r _W_i_d_t_h)

_D_e_s_c_r_i_p_t_i_o_n:

     'nchar' takes a character vector as an argument and returns a
     vector whose elements contain the sizes of the corresponding
     elements of 'x'.

     'nzchar' is a fast way to find out if elements of a character
     vector are non-empty strings.

_U_s_a_g_e:

     nchar(x, type = "chars", allowNA = FALSE)

     nzchar(x)

_A_r_g_u_m_e_n_t_s:

       x: character vector, or a vector to be coerced to a character
          vector.

    type: character string: partial matching to one of 'c("bytes",
          "chars", "width")'.  See Details.

 allowNA: logical: show 'NA' be returned for invalid multibyte strings
          (rather than throwing an error)?

_D_e_t_a_i_l_s:

     The 'size' of a character string can be measured in one of three
     ways

     '_b_y_t_e_s' The number of bytes needed to store the string (plus in C
          a final terminator which is not counted).

     '_c_h_a_r_s' The number of human-readable characters.

     '_w_i_d_t_h' The number of columns 'cat' will use to print the string
          in a monospaced font.  The same as 'chars' if this cannot be
          calculated.

     These will often be the same, and almost always will be in
     single-byte locales.  There will be differences between the first
     two with multibyte character sequences, e.g. in UTF-8 locales. If
     the byte stream contains embedded 'nul' bytes, 'type = "bytes"'
     looks at all the bytes whereas the other two types look only at
     the string as printed by 'cat', up to the first 'nul' byte.

     The internal equivalent of the default method of 'as.character' is
     performed on 'x' (so there is no method dispatch).  If you want to
     operate on non-vector objects passing them through 'deparse' first
     will be required.

_V_a_l_u_e:

     For 'nchar', an integer vector giving the sizes of each element,
     currently always '2' for missing values (for 'NA').

     If 'allowNA = TRUE' and an element is invalid in a multi-byte
     character set such as UTF-8, its number of characters and the
     width will be 'NA'.  Otherwise the number of characters will be
     non-negative, so '!is.na(nchar(x, "chars", TRUE))' is a test of
     validity.

     Names, dims and dimnames are copied from the input.

     For 'nzchar', a logical vector of the same length as 'x', true if
     and only if the element has non-zero length.

_N_o_t_e:

     This does *not* by default give the number of characters that will
     be used to 'print()' the string.  Use 'encodeString' to find the
     characters used to print the string.

     Embedded 'nul' bytes are included in the byte count (but not the
     final 'nul').  In contrast, characters are counted up to the
     string terminator (the first 'nul' that is not part of a character
     representation).

_R_e_f_e_r_e_n_c_e_s:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

_S_e_e _A_l_s_o:

     'strwidth' giving width of strings for plotting; 'paste',
     'substr', 'strsplit'

_E_x_a_m_p_l_e_s:

     x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
     nchar(x)
     # 5  6  6  1 15

     nchar(deparse(mean))
     # 18 17

