我想将带有公式的字符串转换为类型language
的对象,以便将其用作公式。
我该如何完成?
一个简短的示例,显示了问题所在:
formula <- "(1 - sin(x^3)"
> typeof(formula)
[1] "character"
有效参考是
> typeof(quote(1 - sin(x^3)))
[1] "language"
当然,我不能只用引号写公式:
> quote(formula)
formula
那么,有没有办法将向量中的字符串转换为language
类型的东西?
答案 0 :(得分:3)
使用parse
:
y <- "1 - sin(x^3)"
p <- parse(text = y)[[1]]
p
## 1 - sin(x^3)
is.language(p)
## [1] TRUE
typeof(p)
## [1] "language"
x <- pi/4
eval(p)
## [1] 0.5342579
请注意,is.language(parse(text = y))
也为TRUE,但类型为expression
。另一方面,eval(parse(text = y))
给出相同的结果。