如何使用带有"无效"名称的dplyr SE(即包含空格)?

Dea*_*ali 5 r dplyr

我无法弄清楚如何使用无效变量名称的SE dplyr函数,例如选择一个带有空格的变量.

例:

df <- dplyr::data_frame(`a b` = 1)
myvar <- "a b"
Run Code Online (Sandbox Code Playgroud)

如果我想选择a b变量,我可以用它来做dplyr::select(df, `a b`),但我该怎么做select_呢?

我想我只需要在反引号中找到一个"包装"字符串的函数,这样我就可以调用了 dplyr::select_(df, backtick(myvar))

Dea*_*ali 8

正如MyFlick在评论中所说,通常应该避免这种行为,但是如果你想让它工作,你可以制作自己的反引号包装器

backtick <- function(x) paste0("`", x, "`")
dplyr::select_(df, backtick(myvar))
Run Code Online (Sandbox Code Playgroud)

编辑:哈德利回复了我的推文,并告诉我,简单地使用as.name将为此工作,而不是使用反引号:

df <- dplyr::data_frame(`a b` = 1)
myvar <- "a b"
dplyr::select_(df, as.name(myvar))
Run Code Online (Sandbox Code Playgroud)