Arithmetic Operators
Addition
[1] 5
[1] 22
[1] 75
Multiplication
[1] 30
[1] 3
[1] 3
Division
[1] 2
> typeof(10L/5L) # Division always returns double
[1] "double"
[1] 2.4
Exponent
Using "^"(), ^ or ** -
[1] 8
[1] 8
[1] 8
Modulus
To get the modulus or remainder from division use %% -
[1] 2
[1] 3
Integer Division
Using %/% get only the integers from a division -
[1] 2
[1] 3
Relational Operators
These operators returns a logical vector.
Less than, <
Single comparison -
[1] TRUE
[1] FALSE
Multiple comparison -
> x <- c(1, 5, 10, 12, 15, 6)
> x < 6 # Checks whether an element is less than 6 or not
[1] TRUE TRUE FALSE FALSE FALSE FALSE
Greater than, >
Single comparison -
[1] FALSE
[1] TRUE
Multiple comparison -
> x <- c(1, 5, 10, 12, 15, 6)
> x > 6 # Checks whether an element is greater than 6 or not
[1] FALSE FALSE TRUE TRUE TRUE FALSE
Less than or equal to, <=
Single comparison -
[1] TRUE
[1] TRUE
[1] FALSE
Multiple comparison -
> x <- c(1, 5, 10, 12, 15, 6)
> x <= 6 # Checks whether an element is less than or equal to 6 or not
[1] TRUE TRUE FALSE FALSE FALSE TRUE
Greater than or equal to, >==
Single comparison -
[1] FALSE
[1] TRUE
[1] TRUE
Multiple comparison -
> x <- c(1, 5, 10, 12, 15, 6)
> x >= 6 # Checks whether an element is greater than or equal to 6 or not
[1] FALSE FALSE TRUE TRUE TRUE TRUE
Equal to, ==
> x <- c(1, 5, 10, 12, 15, 6)
> x == 10 # Checks which element of the vector is equal to 10
[1] FALSE FALSE TRUE FALSE FALSE FALSE
> which(x == 10) # Returns the indexes of logical TRUE
[1] 3
> x == 10000 # Checks which element of the vector is equal to 10000
[1] FALSE FALSE FALSE FALSE FALSE FALSE
Not equal to, !=
> x <- c(1, 5, 10, 12, 15, 6)
> x != 10 # Checks which element of the vector is not equal to 10
[1] TRUE TRUE FALSE TRUE TRUE TRUE
> which(x != 10) # Returns the indexes of logical TRUE
[1] 1 2 4 5 6
AND, OR operators
Single comparison, || and &&
> x <- T
> y <- T
> x == T && y == T # Checks if both the two conditions are TRUE or not
[1] TRUE
> x <- T
> y <- F
> x == T || y == T # Checks if either one of the two conditions are TRUE or not
[1] TRUE
If the single operators are used for element-wise comparison then only the first pair/first element of the vector will be compared -
> x <- c(1, 5, 10, 12, 15, 6)
> # Checks if the first element is greater than or equal to 10 and less than or equal to 16
> x >= 10 || x <= 16
[1] TRUE
Element-wise comparison, | and &
Element-wise AND operations can be performed using | -
> x <- c(1, 5, 10, 12, 15, 6)
> # Checks if the element is greater than or equal to 10 and less than or equal to 16
> x >= 10 & x <= 16
[1] FALSE FALSE TRUE TRUE TRUE FALSE
> which(x >= 10 & x <= 16)
[1] 3 4 5
OR operations can be performed using | -
> x <- c(1, 5, 10, 12, 15, 6)
> x == 10 | x == 6 # Checks if the element is equal to either 10 or 6
[1] FALSE FALSE TRUE FALSE FALSE TRUE
> which(x == 10 | x == 6)
[1] 3 6
%in%
A simpler way to perform element wise OR operations using %in% -
> x <- c(1, 5, 10, 12, 15, 6)
> x %in% c(6, 10) # Checks if the element is equal to either 10 or 6
[1] FALSE FALSE TRUE FALSE FALSE TRUE
[1] 3 6
NOT %in%
Using ! to invert the logical vector -
> x <- c(1, 5, 10, 12, 15, 6)
> !(x %in% c(6, 10)) # Checks if the element is not equal to either 10 or 6
[1] TRUE TRUE FALSE TRUE TRUE FALSE
> which(!(x %in% c(6, 10)))
[1] 1 2 4 5
LS0tDQp0aXRsZTogIk9wZXJhdG9ycyBpbiBSIg0KYXV0aG9yOiAnTUQgQUhTQU5VTCBJU0xBTScNCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGNlcnVsZWFuDQogICAgaGlnaGxpZ2h0OiBoYWRkb2NrDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQoNCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBjb21tZW50ID0gIiIsIHByb21wdCA9IFRSVUUsIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFDQopDQpgYGANCg0KLS0tDQoNCiMgQXJpdGhtZXRpYyBPcGVyYXRvcnMNCg0KIyMgQWRkaXRpb24NCg0KYGBge3J9DQoxICsgNA0KMTAgKyAxMg0Kc3VtKGMoMTAsIDE1LCA1MCkpDQpgYGANCg0KIyMgU3VidHJhY3Rpb24NCg0KYGBge3J9DQo0IC0gMQ0KMTAgLSAxMg0KYGBgDQoNCiMjIE11bHRpcGxpY2F0aW9uDQoNCmBgYHtyfQ0KMTAgKiAzDQoxLjUgKiAyDQpwcm9kKGMoMS41LCAyKSkNCmBgYA0KDQojIyBEaXZpc2lvbg0KDQpgYGB7cn0NCjEwLzUNCnR5cGVvZigxMEwvNUwpICMgRGl2aXNpb24gYWx3YXlzIHJldHVybnMgZG91YmxlDQoxMi81DQpgYGANCg0KIyMgRXhwb25lbnQNClVzaW5nIGAiXiIoKWAsIGBeYCBvciBgKipgIC0gDQpgYGB7cn0NCiJeIigyLDMpDQoyXjMNCjIqKjMNCmBgYA0KDQojIyBNb2R1bHVzDQpUbyBnZXQgdGhlIG1vZHVsdXMgb3IgcmVtYWluZGVyIGZyb20gZGl2aXNpb24gdXNlIGAlJWAgLSANCmBgYHtyfQ0KMTAlJTQNCjI0JSU3DQpgYGANCg0KIyMgSW50ZWdlciBEaXZpc2lvbg0KVXNpbmcgYCUvJWAgZ2V0IG9ubHkgdGhlIGludGVnZXJzIGZyb20gYSBkaXZpc2lvbiAtIA0KYGBge3J9DQoxMCUvJTQNCjI0JS8lNw0KYGBgDQoNCiMgUmVsYXRpb25hbCBPcGVyYXRvcnMNClRoZXNlIG9wZXJhdG9ycyByZXR1cm5zIGEgbG9naWNhbCB2ZWN0b3IuDQoNCiMjIExlc3MgdGhhbiwgPA0KDQpTaW5nbGUgY29tcGFyaXNvbiAtIA0KYGBge3J9DQoxMCA8IDExDQoxMSA8IDEwDQpgYGANCk11bHRpcGxlIGNvbXBhcmlzb24gLQ0KYGBge3J9DQp4IDwtIGMoMSwgNSwgMTAsIDEyLCAxNSwgNikNCnggPCA2ICAjIENoZWNrcyB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgbGVzcyB0aGFuIDYgb3Igbm90DQpgYGANCg0KDQojIyBHcmVhdGVyIHRoYW4sID4NClNpbmdsZSBjb21wYXJpc29uIC0gDQpgYGB7cn0NCjEwID4gMTENCjExID4gMTANCmBgYA0KTXVsdGlwbGUgY29tcGFyaXNvbiAtDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KeCA+IDYgICMgQ2hlY2tzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBncmVhdGVyIHRoYW4gNiBvciBub3QNCmBgYA0KIyMgTGVzcyB0aGFuIG9yIGVxdWFsIHRvLCA8PQ0KU2luZ2xlIGNvbXBhcmlzb24gLSANCmBgYHtyfQ0KMTAgPD0gMTENCjExIDw9IDExDQoxMSA8PSAxMA0KYGBgDQpNdWx0aXBsZSBjb21wYXJpc29uIC0NCmBgYHtyfQ0KeCA8LSBjKDEsIDUsIDEwLCAxMiwgMTUsIDYpDQp4IDw9IDYgICMgQ2hlY2tzIHdoZXRoZXIgYW4gZWxlbWVudCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNiBvciBub3QNCmBgYA0KIyMgR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvLCA+PT0NClNpbmdsZSBjb21wYXJpc29uIC0gDQpgYGB7cn0NCjEwID49IDExDQoxMSA+PSAxMQ0KMTEgPj0gMTANCmBgYA0KTXVsdGlwbGUgY29tcGFyaXNvbiAtDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KeCA+PSA2ICAjIENoZWNrcyB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDYgb3Igbm90DQpgYGANCiMjIEVxdWFsIHRvLCA9PQ0KDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KeCA9PSAxMCAgIyBDaGVja3Mgd2hpY2ggZWxlbWVudCBvZiB0aGUgdmVjdG9yIGlzIGVxdWFsIHRvIDEwDQp3aGljaCh4ID09IDEwKSAgIyBSZXR1cm5zIHRoZSBpbmRleGVzIG9mIGxvZ2ljYWwgVFJVRQ0KeCA9PSAxMDAwMCAgIyBDaGVja3Mgd2hpY2ggZWxlbWVudCBvZiB0aGUgdmVjdG9yIGlzIGVxdWFsIHRvIDEwMDAwDQpgYGANCg0KIyMgTm90IGVxdWFsIHRvLCAhPQ0KDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KeCAhPSAxMCAgIyBDaGVja3Mgd2hpY2ggZWxlbWVudCBvZiB0aGUgdmVjdG9yIGlzIG5vdCBlcXVhbCB0byAxMA0Kd2hpY2goeCAhPSAxMCkgICMgUmV0dXJucyB0aGUgaW5kZXhlcyBvZiBsb2dpY2FsIFRSVUUNCmBgYA0KDQojIyBBTkQsIE9SIG9wZXJhdG9ycw0KDQojIyMgU2luZ2xlIGNvbXBhcmlzb24sIHx8IGFuZCAmJg0KDQpgYGB7cn0NCnggPC0gVA0KeSA8LSBUDQp4ID09IFQgICYmIHkgPT0gVCAgIyBDaGVja3MgaWYgYm90aCB0aGUgdHdvIGNvbmRpdGlvbnMgYXJlIFRSVUUgb3Igbm90DQpgYGANCg0KYGBge3J9DQp4IDwtIFQNCnkgPC0gRg0KeCA9PSBUICB8fCB5ID09IFQgICMgQ2hlY2tzIGlmIGVpdGhlciBvbmUgb2YgdGhlIHR3byBjb25kaXRpb25zIGFyZSBUUlVFIG9yIG5vdA0KYGBgDQpJZiB0aGUgc2luZ2xlIG9wZXJhdG9ycyBhcmUgdXNlZCBmb3IgZWxlbWVudC13aXNlIGNvbXBhcmlzb24gdGhlbiBvbmx5IHRoZSBmaXJzdCBwYWlyL2ZpcnN0IGVsZW1lbnQgb2YgdGhlIHZlY3RvciB3aWxsIGJlIGNvbXBhcmVkIC0gDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KIyBDaGVja3MgaWYgdGhlIGZpcnN0IGVsZW1lbnQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEwIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTYNCnggPj0gMTAgfHwgeCA8PSAxNiAgDQpgYGANCg0KIyMjIEVsZW1lbnQtd2lzZSBjb21wYXJpc29uLCB8IGFuZCAmDQpFbGVtZW50LXdpc2UgQU5EIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCB1c2luZyBgfGAgLSANCmBgYHtyfQ0KeCA8LSBjKDEsIDUsIDEwLCAxMiwgMTUsIDYpDQojIENoZWNrcyBpZiB0aGUgZWxlbWVudCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxNg0KeCA+PSAxMCAmIHggPD0gMTYgIA0Kd2hpY2goeCA+PSAxMCAmIHggPD0gMTYpDQpgYGANCg0KT1Igb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIHVzaW5nIGB8YCAtIA0KYGBge3J9DQp4IDwtIGMoMSwgNSwgMTAsIDEyLCAxNSwgNikNCnggPT0gMTAgfCB4ID09IDYgICMgQ2hlY2tzIGlmIHRoZSBlbGVtZW50IGlzIGVxdWFsIHRvIGVpdGhlciAxMCBvciA2DQp3aGljaCh4ID09IDEwIHwgeCA9PSA2KQ0KYGBgDQoNCiMjICVpbiUNCkEgc2ltcGxlciB3YXkgdG8gcGVyZm9ybSBlbGVtZW50IHdpc2UgT1Igb3BlcmF0aW9ucyB1c2luZyBgJWluJWAgLSANCmBgYHtyfQ0KeCA8LSBjKDEsIDUsIDEwLCAxMiwgMTUsIDYpDQp4ICVpbiUgYyg2LCAxMCkgICMgQ2hlY2tzIGlmIHRoZSBlbGVtZW50IGlzIGVxdWFsIHRvIGVpdGhlciAxMCBvciA2DQp3aGljaCh4ICVpbiUgYyg2LCAxMCkpDQpgYGANCg0KIyMgTk9UICVpbiUNClVzaW5nIGAhYCB0byBpbnZlcnQgdGhlIGxvZ2ljYWwgdmVjdG9yIC0gDQpgYGB7cn0NCnggPC0gYygxLCA1LCAxMCwgMTIsIDE1LCA2KQ0KISh4ICVpbiUgYyg2LCAxMCkpICAjIENoZWNrcyBpZiB0aGUgZWxlbWVudCBpcyBub3QgZXF1YWwgdG8gZWl0aGVyIDEwIG9yIDYNCndoaWNoKCEoeCAlaW4lIGMoNiwgMTApKSkNCmBgYA==