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

问题描述 投票:1回答:1

我想要一个从单个参数中获取不带引号的字符串的函数。如果非标准的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"

Desired ouput:

## [1] "a b"
r
1个回答
3
投票

使用反引号:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.