make.names {base}
Description
Make syntactically valid names out of character vectors.
Usage
make.names(names, unique = FALSE, allow_ = TRUE)
Arguments
- names
- character vector to be coerced to syntactically valid names. This is coerced to character if necessary.
- unique
- logical; if
TRUE, the resulting elements are unique. This may be desired for, e.g., column names. - allow_
- logical. For compatibility with R prior to 1.9.0.
Details
A syntactically valid name consists of letters, numbers and the dot or underline characters and starts with a letter or the dot not followed by a number. Names such as ".2way" are not valid, and neither are the reserved words.
The definition of a letter depends on the current locale, but only ASCII digits are considered to be digits.
The character "X" is prepended if necessary. All invalid characters are translated to ".". A missing value is translated to "NA". Names which match R keywords have a dot appended to them. Duplicated values are altered by make.unique.
Values
A character vector of same length as names with each changed to a syntactically valid name, in the current locale's encoding.
Warning
Some OSes, notably FreeBSD, report extremely incorrect information about which characters are alphabetic in some locales (typically, all multi-byte locales including UTF-8 locales). However, R provides substitutes on Windows, OS X and AIX.
Note
Prior to R version 1.9.0, underscores were not valid in variable names, and code that relies on them being converted to dots will no longer work. Use allow_ = FALSE for back-compatibility.
allow_ = FALSE is also useful when creating names for export to applications which do not allow underline in names (for example, S-PLUS and some DBMSs).
See Also
Examples
make.names(c("a and b", "a-and-b"), unique = TRUE) # "a.and.b" "a.and.b.1" make.names(c("a and b", "a_and_b"), unique = TRUE) # "a.and.b" "a_and_b" make.names(c("a and b", "a_and_b"), unique = TRUE, allow_ = FALSE) # "a.and.b" "a.and.b.1" state.name[make.names(state.name) != state.name] # those 10 with a space
Documentation reproduced from R 3.0.1. License: GPL-2.
