Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Check if character value is a valid R object name
- "^[.[:alpha:]][._[:alnum:]]*$"
- isValidAndUnreserved <- function(string) {
- make.names(string) == string
- }
- isValidAndUnreserved(".jjj")
- # [1] TRUE
- isValidAndUnreserved(" jjj")
- # [1] FALSE
- isValidName <- function(string) {
- grepl("^[.[:alpha:]][._ [:alnum:]]*$", string)
- }
- isValidAndUnreservedName <- function(string) {
- make.names(string) == string
- }
- testValidity <- function(string) {
- valid <- isValidName(string)
- unreserved <- isValidAndUnreservedName(string)
- reserved <- (valid & ! unreserved)
- list("Valid"=valid,
- "Unreserved"=unreserved,
- "Reserved"=reserved)
- }
- testNames <- c("mean", ".j_j", "...", "if", "while", "_jj", " j")
- t(sapply(testNames, testValidity))
- Valid Unreserved Reserved
- mean TRUE TRUE FALSE
- .j_j TRUE TRUE FALSE
- ... TRUE TRUE FALSE
- if TRUE FALSE TRUE
- while TRUE FALSE TRUE
- _jj FALSE FALSE FALSE
- j FALSE FALSE FALSE # These tests for " j", not "j"
- make.names(".x") # ".x"
- make.names("_x") # "X_x"
- make.names("if") # " if."
- make.names("function") # "function."
Add Comment
Please, Sign In to add comment