encodeString {base}R Documentation

Encode Character Vector as for Printing

Description

encodeString escapes the strings in a character vector in the same way print.default does, and optionally fits the encoded strings within a field width.

Usage

encodeString(x, width = 0, quote = "", na.encode = TRUE,
             justify = c("left", "right", "centre", "none"))

Arguments

x

a character vector, or an object that can be coerced to one by as.character.

width

integer: the minimum field width. If NULL or NA, this is taken to be the largest field width needed for any element of x.

quote

character: quoting character, if any.

na.encode

logical: should NA strings be encoded?

justify

character: partial matches are allowed. If padding to the minimum field width is needed, how should spaces be inserted? justify == "none" is equivalent to width = 0, for consistency with format.default.

Details

This escapes backslash and the control characters ‘⁠\a⁠’ (bell), ‘⁠\b⁠’ (backspace), ‘⁠\f⁠’ (form feed), ‘⁠\n⁠’ (line feed, aka “newline”), ‘⁠\r⁠’ (carriage return), ‘⁠\t⁠’ (tab) and ‘⁠\v⁠’ (vertical tab) as well as any non-printable characters in a single-byte locale, which are printed in octal notation (‘⁠\xyz⁠’ with leading zeroes).

Which characters are non-printable depends on the current locale. Windows' reporting of printable characters is unreliable, so there all other control characters are regarded as non-printable, and all characters with codes 32–255 as printable in a single-byte locale. See print.default for how non-printable characters are handled in multi-byte locales.

If quote is a single or double quote any embedded quote of the same type is escaped. Note that justification is of the quoted string, hence spaces are added outside the quotes.

Value

A character vector of the same length as x, with the same attributes (including names and dimensions) but with no class set.

Marked UTF-8 encodings are preserved.

Note

The default for width is different from format.default, which does similar things for character vectors but without encoding using escapes.

See Also

print.default

Examples

x <- "ab\bc\ndef"
print(x)
cat(x) # interprets escapes
cat(encodeString(x), "\n", sep = "") # similar to print()

factor(x) # makes use of this to print the levels

x <- c("a", "ab", "abcde")
encodeString(x) # width = 0: use as little as possible
encodeString(x, 2) # use two or more (left justified)
encodeString(x, width = NA) # left justification
encodeString(x, width = NA, justify = "c")
encodeString(x, width = NA, justify = "r")
encodeString(x, width = NA, quote = "'", justify = "r")

[Package base version 4.4.0 Index]