# Syntax

0th

Percentile

##### Operator Syntax and Precedence

Outlines R syntax and gives the precedence of operators.

Keywords
programming, documentation
##### Details

The following unary and binary operators are defined. They are listed in precedence groups, from highest to lowest.

 :: ::: access variables in a namespace $@ component / slot extraction [ [[ indexing ^ exponentiation (right to left) - + unary minus and plus : sequence operator %any% special operators (including %% and %/%) * / multiply, divide + - (binary) add, subtract < > <=>= == != ordering and comparison ! negation & && and | || or ~ as in formulae -> ->> rightwards assignment <- <<-< code=""> assignment (right to left) = assignment (right to left) ? help (unary and binary) Within an expression operators of equal precedence are evaluated from left to right except where indicated. (Note that = is not necessarily an operator.) The binary operators ::, :::, $ and @ require names or string constants on the right hand side, and the first two also require them on the left.

##### Note

There are substantial precedence differences between R and S. In particular, in S ? has the same precedence as (binary) + - and & && | || have equal precedence.

##### References

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.

The ‘R Language Definition’ manual.

• Syntax
##### Examples
library(base) ## 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): ## Consequently, this gives a ("non-catchable") error x <- y = 5 #-> Error in (x <- y) = 5 : .... 
Documentation reproduced from package base, version 3.2.4, License: Part of R 3.2.4

### Community examples

Looks like there are no examples yet.