我无法弄清楚如何使用无效变量名称的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))
正如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)