| make.names {base} | R Documentation | 
Make syntactically valid names out of character vectors.
make.names(names, unique = FALSE, allow_ = TRUE)
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. | 
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 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.
A character vector of same length as names with each changed to
a syntactically valid name.
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).
make.unique,
names,
character,
data.frame.
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