make.names package:base R Documentation _M_a_k_e _S_y_n_t_a_c_t_i_c_a_l_l_y _V_a_l_i_d _N_a_m_e_s _D_e_s_c_r_i_p_t_i_o_n: Make syntactically valid names out of character vectors. _U_s_a_g_e: make.names(names, unique = FALSE, allow_ = TRUE) _A_r_g_u_m_e_n_t_s: 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. _D_e_t_a_i_l_s: 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'. _V_a_l_u_e: A character vector of same length as 'names' with each changed to a syntactically valid name, in the current locale's encoding. _N_o_t_e: 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). _S_e_e _A_l_s_o: 'make.unique', 'names', 'character', 'data.frame'. _E_x_a_m_p_l_e_s: 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