How to deal with nonstandard column names (white space, punctuation, starts with numbers)

You may select the variable by using backticks `.

select(df, `a a`)
#   a a
# 1   1
# 2   2
# 3   3

However, if your main objective is to rename the column, you may use rename in plyr package, in which you can use both "" and ``.

rename(df, replace = c("a a" = "a"))
rename(df, replace = c(`a a` = "a"))

Or in base R:

names(df)[names(df) == "a a"] <- "a"

For a more thorough description on the use of various quotes, see ?Quotes. The ‘Names and Identifiers’ section is especially relevant here:

other [syntactically invalid] names can be used provided they are quoted. The preferred quote is the backtick”.

See also ?make.names about valid names.

See also this post about renaming in dplyr

Leave a Comment