3

在 R 中定义自定义中缀运算符是“常见的”,例如

`%op%` <- function(e1, e2) someOperation(e1, e2)
result <- e1 %op% e2

似乎不可能定义一元运算符(对应于例如!):

(举一个最小的例子:)

`%op%` <- function(x) x
# the definition works fine
`%op%`
# function(x) x
# but usage fails
%op% x
# Error: unexpected SPECIAL in "%op%"

然而,!运算符本身似乎以相同的方式定义,至少就用户而言:

`!`
# function (x)  .Primitive("!")

但显然内部结构不同,因为我的功能不起作用。这有什么具体原因吗?还是有另一种我不知道的方法?(我不记得任何提供一元前缀运算符的包或类似的包,所以答案很可能是它不起作用......)

4

0 回答 0