将带有空格的非标准评估参数转换为单个字符串

时间:2018-03-02 22:01:17

标签: r

我希望有一个函数可以从单个参数中获取不带引号的字符串。如果非标准的evaluate参数中没有空格,这非常有效。但如果有它会给出错误。如何将未加引号的字符串传递给函数并在另一端出现一个带引号的字符串?我怀疑ldots可能是解决方案的一部分,或者这是一个解析错误,并且没有办法做我想做的事。

MWE

f <- function(x){
     deparse(substitute(x))

}

f(a)
## [1] "a"

f(a > b)
## [1] "a > b"

f(a b)
## Error: unexpected symbol in "f(a b"

期望的输出:

## [1] "a b"

1 个答案:

答案 0 :(得分:3)

使用反引号:

f(`a b`)
#> [1] "a b"

否则,解析器将(正确地)看到a b不是有效的R表达式。