r - 在 R 中创建一元运算符

标签 r

是否可以在 R 中创建一元运算符?我知道可以像这样创建二元运算符:

setGeneric("%power%", function(x, y) x ^ y)
2 %power% 4

但是是否可以创建像-这样的一元运算符。我试过类似的东西:

setGeneric("%-%", function(x) -x)
%-% 3

但是没用

最佳答案

R 解析器不支持自定义一元运算符。

R language definition 中支持的运算符列表的副本:

-   Minus, can be unary or binary
+   Plus, can be unary or binary
!   Unary not
~   Tilde, used for model formulae, can be either unary or binary
?   Help
:   Sequence, binary (in model formulae: interaction)
*   Multiplication, binary
/   Division, binary
^   Exponentiation, binary
%x% Special binary operators, x can be replaced by any valid name
%%  Modulus, binary
%/% Integer divide, binary
%*% Matrix product, binary
%o% Outer product, binary
%x% Kronecker product, binary
%in%    Matching operator, binary (in model formulae: nesting)
<   Less than, binary
>   Greater than, binary
==  Equal to, binary
>=  Greater than or equal to, binary
<=  Less than or equal to, binary
&   And, binary, vectorized
&&  And, binary, not vectorized
|   Or, binary, vectorized
||  Or, binary, not vectorized
<-  Left assignment, binary
->  Right assignment, binary
$   List subset, binary

(解析器还支持二元运算符 :=,此处未记录,因为 base R 未使用它。)

请注意,唯一的自定义运算符(“%x% 特殊二元运算符,x 可以替换为任何有效名称”)是二进制的。

因此,您唯一的选择是重载现有的一元运算符,分别为它编写一个方法。

关于r - 在 R 中创建一元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55518829/

相关文章:

r - 在 R 中进行线性回归时如何有条件地删除 NA 观察因素?

r - 通过比较 r 中数据框中的现有变量来添加新变量

r - 过滤每组中间行

r - geom_bar() 使条形不同宽度并完全重叠

r - 在 R 中,您将如何编写包装函数或类来将数字格式化为百分比、货币等?

r - 只显示部分图例内容

r - 为 data.table (r) 中的每个 ID 选择第一个唯一匹配项

r - R 中的 print() 和 print(paste()) 函数有什么区别?

r - 在 R 中切片数据帧的第二半

mysql - 有没有办法使用 RMySQL 调用存储过程?