nchar                  package:base                  R Documentation

Count the Number of Characters (or Bytes or Width)

Description:

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

Usage:

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

     nzchar(x)

Arguments:

       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)?

Details:

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

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

     'chars' The number of human-readable characters.

     'width' 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.

     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.

Value:

     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.

Note:

     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. Where character strings have
     been marked as UTF-8, the number of characters and widths will be
     computed in UTF-8, even though printing may use escapes such as
     '<U+2642>' in a non-UTF-8 locale.

References:

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

See Also:

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

Examples:

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

     nchar(deparse(mean))
     # 18 17

