当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R Syntax 运算符语法和优先级


R语言 Syntax 位于 base 包(package)。

说明

概要R语法并给出运算符的优先级。

细节

定义了以下一元和二元运算符。它们按优先级组列出,从最高到最低。

:: :::访问命名空间中的变量
$ @元件/插槽提取
[ [[ indexing
^求幂(从右到左)
- +一元减号和加号
:序列运算符
%any% |>特殊运算符(包括 %%%/% )
* /乘、除
+ -(二进制)加、减
< > <= >= == !=排序和比较
! negation
& && and
| || or
~如公式中所示
-> ->>向右赋值
<- <<-赋值(从右到左)
=赋值(从右到左)
?帮助(一元和二进制)

在表达式中,除非另有说明,优先级相同的运算符从左到右进行计算。 (请注意,= 不一定是运算符。)

二元运算符 :::::$@ 要求名称或字符串常量位于右侧,前两个也需要它们位于左侧。

另请参阅部分中的链接涵盖了基本语法的大多数其他方面。

注意

之间存在显著的优先级差异R和 S。特别是,在 S?与(二进制)具有相同的优先级+ -& && | ||具有同等优先权。

例子

## Logical AND ("&&") has higher precedence than OR ("||"):
TRUE || TRUE && FALSE   # is the same as
TRUE || (TRUE && FALSE) # and different from
(TRUE || TRUE) && FALSE

## Special operators have higher precedence than "!" (logical NOT).
## You can use this for %in% :
! 1:10 %in% c(2, 3, 5, 7) # same as !(1:10 %in% c(2, 3, 5, 7))
## but we strongly advise to use the "!( ... )" form in this case!


## '=' has lower precedence than '<-' ... so you should not mix them
##     (and '<-' is considered better style anyway):
## Not run: ## Consequently, this gives a ("non-catchable") error
 x <- y = 5  #->  Error in (x <- y) = 5 : ....

## End(Not run)

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

Arithmetic , Comparison , Control , Extract , Logic , NumericConstants , Paren , Quotes , Reserved

“R 语言定义”手册。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Operator Syntax and Precedence。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。