我想从字符串创建对象,以与公式的元素进行比较。
例如,在以下内容中:
# note that f does not exist
myForm <- y ~ f(x)
theF <- myForm[[3]]
fString <- "f(x)"
我怎么能比较fString
来theF
?
如果我知道字符串是“ f(x)”,则可以手动输入以下内容
cheating <- as.call(quote(f(x)))
identical(theF, cheating)
哪个有效(给出TRUE),但我希望能够将字符串“ f(x)”作为参数(例如,可能是“ g(x)”)。
这个问题的实质是让我更好地了解如何使用调用对象和quote
函数。
parse(text = s)
将文本转换s
为表达式,然后e[[1]]
从长度为1的表达式中提取调用对象e
。theF
是一个调用对象,因此将它们放在一起有:
identical(theF, parse(text = fString)[[1]])
## TRUE
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句