character {base}R Documentation

Character Vectors


Create or test for objects of type "character".


character(length = 0)
as.character(x, ...)


length desired length.
x object to be coerced or tested.
... further arguments passed to or from other methods.


as.character and is.character are generic: you can write methods to handle specific classes of objects, see InternalMethods.

as.character represents real and complex numbers to 15 decimal places (technically the compiler's setting of the ISO C constant DBL_DIG, which will be 15 on machines supporting IEC60559 arithmetic according to the C99 standard). This ensures that all the digits in the result will be reliable (and not the result of representation error), but does mean that coversion to character and back to numeric may change the number. If you want to convert numbers to character with the maximum possible precision, use format.


character creates a character vector of the specified length. The elements of the vector are all equal to "".
as.character attempts to coerce its argument to character type; like as.vector it strips attributes including names.
is.character returns TRUE or FALSE depending on whether its argument is of character type or not.


as.character truncates components of language objects to 500 characters (was about 70 before 1.3.1).


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

See Also

paste, substr and strsplit for character concatenation and splitting, chartr for character translation and casefolding (e.g., upper to lower case) and sub, grep etc for string matching and substitutions. Note that = "character") gives even more links. deparse, which is normally preferable to as.character for language objects.


form <- y ~ a + b + c
as.character(form)  ## length 3
deparse(form)       ## like the input

a0 <- 11/999          # has a repeating decimal representation
(a1 <- as.character(a0))
format(a0, digits=16) # shows one more digit
a2 <- as.numeric(a1)
a2 - a0               # normally around -1e-17
as.character(a2)      # normally different from a1
print(c(a0, a2), digits = 16)

[Package base version 2.2.1 Index]