\Header{make.names}{Make Syntactically Valid Names}
\keyword{character}{make.names}
\begin{Description}\relax
Make syntactically valid names out of character vectors.\end{Description}
\begin{Usage}
\begin{verbatim}
make.names(names, unique = FALSE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{names}] character (vector) to be coerced to syntactically valid
names.
\item[\code{unique}] logical; if \code{TRUE}, the resulting elements are
unique.  This may be desired for, e.g., column names.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
A syntactically valid name consists of letters, numbers, and the dot
character and starts with a letter or the dot.

All invalid characters are translated to \code{"."}.  A missing value
is translated to \code{"NA"}.

If \code{unique = TRUE} a sequence number is appended to each
duplicate (after coercion).\end{Details}
\begin{Value}
A character vector of same length as \code{names} with each changed to
a syntactically valid name.\end{Value}
\begin{SeeAlso}\relax
\code{\Link{names}},
\code{\Link{character}},
\code{\Link{data.frame}}.\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
make.names(c("a and b", "a_and_b"), unique=TRUE)#-> "a.and.b"  "a.and.b1"

all(make.names(letters) == letters)# TRUE

data(state)
state.name[make.names(state.name) != state.name]# those 10 with a space
\end{ExampleCode}
\end{Examples}

