我正在尝试定义一个中缀函数 %~% ,它在左侧接受一个字符,在右侧接受一个表达式并返回一个连接的公式对象。所以我要"y" %~% x + z
返回什么y ~ x + z
。
但是,我的函数(如下)未能将+
用作符号公式运算符,而是默认为算术运算符。显然,中~
缀函数实现了这一点,但它是一个原始函数,所以我(我想我)不能刷代码,我不知道如何将它合并到函数定义中以实现我想要的结果。
`%~%` <- function(x, y) {
y <- deparse(substitute(y))
formula(paste(x, "~", y)
}
一种解决方案是~
在调用函数时使用运算符:
"y" %~%~ x + z
但我想知道是否有一种方法可以防止+
在函数定义中评估算术运算符,以便我可以简单地使用%~%
.