我可以使用deparse
和substitute
将任何文字表达式转换为字符串。例如:
f <- function(...) deparse(substitute(...))
f(abc)
# "abc"
如果参数包含空格,我可以使用反引号运算符。没有反引号,我收到一个错误:
f(`abc def`)
# "abc def"
f(abc def)
# Error: unexpected symbol in "f(abc def"
是否有可能让f(abc def)
在R中工作?或者它是否违反了一些基本的R语法规则?
答案 0 :(得分:0)
abc def
不是有效的R语法,但可以使用非语法名称将其包围在后面。这仍然允许在确定的情况下使用f
:
f(`abc def`)
## [1] "abc def"
其他解决方法可能是将点转换为空格(如果您在输入中不需要点)或将_转换为空格或使用〜代替空格并再次翻译它:
chartr(".", " ", f(abc.def))
## [1] "abc def"
chartr("_", " ", f(abc_def))
## [1] "abc def"
gsub(" *~ *", " ", f(abc~def))
## [1] "abc def"