我的用例如下:
简而言之,我想做点如下的事情:
myExpression <- "3 * 5"
myExprParsed <- tryCatch( parse(myExpression), .... )
我的问题非常简单:R在regex中是否有一些类似\Q \E
的构造,从头到尾完全引用一个文本字符串? myExpression不会包含"
字符,从而引入语法错误。我不想将文本内容写入单独的文本文件并使用source()
。
=实施例=
myExpression <- " XXXXXXX "
其中XXXXXX为paste("my random value is ", runif(3))
将等于
myExpression <- " paste("my random value is ", runif(3)) "
会产生语法错误。我想要像
这样的东西myExpression <- verbatim@ paste("my random value is ", runif(3)) @
答案 0 :(得分:2)
从用户那里得到一些输入 - 我猜你只是从GUI中的文本框中获取值。我将使用scan
:
> dowhat = scan(what="")
1: x="hello world"
3:
Read 2 items
我们引用了字符串:
> dowhat
[1] "x=\"hello" "world\""
我们可以解析它:
> parse(text=dowhat)
expression(x="hello
world")
并且有一个换行符,因为scan()按行拆分。不是真正的问题,如果你关心可以修复。
现在让我们实际运行它:
> eval(parse(text=dowhat))
现在我们应该有x
:
> x
[1] "hello\nworld"
>