R 提供了许多运算符来执行各种数学和逻辑运算。
R 中的运算符主要可分为以下几类。
算术运算符 |
关系运算符 |
逻辑运算符 |
赋值运算符 |
R 算术运算符
这些运算符用于执行诸如加法和乘法之类的数学运算。以下是 R 中可用的算术运算符列表。
运算符 | 描述 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
^ | 幂 |
%% | 模(除法的余数) |
%/% | 整除 |
运行示例
> x <- 5
> y <- 16
> x+y
[1] 21
> x-y
[1] -11
> x*y
[1] 80
> y/x
[1] 3.2
> y%/%x
[1] 3
> y%%x
[1] 1
> y^x
[1] 1048576
R 关系运算符
关系运算符用于比较值。以下是 R 中可用的关系运算符列表。
运算符 | 描述 |
---|---|
< | 小于 |
> | 大于 |
<= | 小于或等于 |
>= | 大于或等于 |
== | 等于 |
!= | 不等于 |
运行示例
> x <- 5
> y <- 16
> x<y
[1] TRUE
> x>y
[1] FALSE
> x<=5
[1] TRUE
> y>=20
[1] FALSE
> y == 16
[1] TRUE
> x != 5
[1] FALSE
向量运算
上述运算符适用于 向量。上面使用的变量实际上是单元素向量。
我们可以使用函数 c()
(表示连接)在 R 中创建向量。
所有运算均以逐元素方式执行。下面是一个示例。
> x <- c(2,8,3)
> y <- c(6,4,1)
> x+y
[1] 8 12 4
> x>y
[1] FALSE TRUE TRUE
当操作数向量的长度(元素数量)不匹配时,较短向量中的元素会以循环方式回收,以匹配较长向量的长度。
如果较长向量的长度不是较短向量的整数倍,R 将发出警告。
> x <- c(2,1,8,3)
> y <- c(9,4)
> x+y # Element of y is recycled to 9,4,9,4
[1] 11 5 17 7
> x-1 # Scalar 1 is recycled to 1,1,1,1
[1] 1 0 7 2
> x+c(1,2,3)
[1] 3 3 11 4
Warning message:
In x + c(1, 2, 3) :
longer object length is not a multiple of shorter object length
R 逻辑运算符
逻辑运算符用于执行布尔运算,例如 AND
、OR
等。
运算符 | 描述 |
---|---|
! | 逻辑非 |
& | 逐元素的逻辑 AND |
&& | 逻辑与 |
| | 逐元素的逻辑 OR |
|| | 逻辑或 |
运算符 &
和 |
执行逐元素操作,产生长度与较长操作数相同的长度的结果。
但是 &&
和 ||
只检查操作数的第一个元素,结果是单个长度的逻辑向量。
零被视为 FALSE
,非零数字被视为 TRUE
。运行示例。
> x <- c(TRUE,FALSE,0,6)
> y <- c(FALSE,TRUE,FALSE,TRUE)
> !x
[1] FALSE TRUE TRUE FALSE
> x&y
[1] FALSE FALSE FALSE TRUE
> x&&y
[1] FALSE
> x|y
[1] TRUE TRUE FALSE TRUE
> x||y
[1] TRUE
R 赋值运算符
这些运算符用于为变量赋值。
运算符 | 描述 |
---|---|
<-, <<-, = | 左向赋值 |
->, ->> | 右向赋值 |
运算符 <-
和 =
几乎可以互换地用于在同一环境中为变量赋值。
<<-
运算符用于为父环境中的变量赋值(更像是全局赋值)。右向赋值虽然可用,但很少使用。
> x <- 5
> x
[1] 5
> x = 9
> x
[1] 9
> 10 -> x
> x
[1] 10