【发布时间】:2017-06-01 19:00:19
【问题描述】:
我正在尝试定义一个中缀函数 %~%,它在左边接受一个字符,在右边接受一个表达式,并返回一个连接的公式对象。所以我想要"y" %~% x + z 返回y ~ x + z。
但是,我的函数(如下)未能使用 + 作为符号公式运算符,而是默认使用算术运算符。显然,~ 中缀函数实现了这一点,但它是一个原始函数,所以我(我想我)不能去刷代码,我不知道如何将它合并到函数定义中以实现我想要的结果.
`%~%` <- function(x, y) {
y <- deparse(substitute(y))
formula(paste(x, "~", y)
}
一个解决办法是在调用函数时使用~操作符:
"y" %~%~ x + z
但我想知道是否有办法防止在函数定义中将 + 评估为算术运算符,以便我可以简单地使用 %~%。
【问题讨论】:
标签: r formula infix-operator