运算符是每一门编程语言必不可少的一块重要知识点。
R语言中运算符有以下几种:
1、算数运算符;
2、关系运算符;
3、逻辑运算符;
4、赋值运算符;
5、其他运算符。
符号 | 含义 | 案例 |
---|---|---|
+ | 两个向量相加 | > c(1,2,2) + c(1,2,3) [1] 2 4 5 |
- | 前一个向量减后一个向量 | > c(1,2,2) - c(1,2,3) [1] 0 0 -1 |
* | 两个向量相乘 | > c(1,2,2) * c(1,2,3) [1] 1 4 6 |
/ | 前一个向量除以后一个向量 | > c(1,2,2) / c(1,2,3) [1] 1.0000000 1.0000000 0.6666667 |
%% | 前一个向量除以后一个向量取余数 | > c(1,2,2) %% c(1,2,3) [1] 0 0 2 |
%/% | 前一个向量除以后一个向量取商(模) | > c(1,2,2) %/% c(1,2,3) [1] 1 1 0 |
^ | 前一个向量为底数(a),后一个向量为指数(b),求 a b a^b ab | > c(1,2,2) ^ c(1,2,3) [1] 1 4 8 |
上面所做的案例都是组合向量之间的计算,这样的计算也可以是数值与数值之间的,或者是组合向量与数值之间的(向量中每个元素都会和数值计算一次,结果还是向量)
符号 | 含义 | 案例 |
---|---|---|
< | 若前一个向量某位置的元素小于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) < c(1,2,3) [1] FALSE FALSE TRUE |
<= | 若前一个向量某位置的元素不大于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) <= c(1,2,3) [1] TRUE TRUE TRUE |
> | 若前一个向量某位置的元素大于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) > c(1,2,3) [1] FALSE FALSE FALSE |
>= | 若前一个向量某位置的元素不小于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) >= c(1,2,3) [1] TRUE TRUE FALSE |
== | 若前一个向量某位置的元素等于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) == c(1,2,3) [1] TRUE TRUE FALSE |
!= | 若前一个向量某位置的元素不等于后一个向量对应位置的元素,返回TRUE,反之FALSE | > c(1,2,2) != c(1,2,3) [1] FALSE FALSE TRUE |
符号 | 含义 |
---|---|
| ,|| |
逻辑或,两向量对应位置的元素只要有一个是TRUE,则返回TRUE|| 在向量运算中,仅考虑向量的第一个元素 |
&,&& | 逻辑与,两向量对应位置的元素只要有一个是FALSE,则返回FALSE &&在向量运算中,仅考虑向量的第一个元素 |
! | 逻辑非,TRUE返回FALSE,FALSE返回TRUE |
案例:
> c(T,T,F)|c(T,F,F)
[1] TRUE TRUE FALSE
> c(T,T,F)||c(T,F,F)
[1] TRUE
> c(T,T,F)&c(T,F,F)
[1] TRUE FALSE FALSE
> c(T,T,F)&&c(T,F,F)
[1] TRUE
> !c(T,T,F)
[1] FALSE FALSE TRUE
符号 | 含义 |
---|---|
<-,<<-,= | 左分配符,将符号右侧的值赋给左侧变量 |
->,->> | 右分配符,将符号左侧的值赋给右侧变量 |
案例:
#给a赋值一个向量(1,2,3)的5种方式
> a<-c(1,2,3)
> a
[1] 1 2 3
> a<<-c(1,2,3)
> a
[1] 1 2 3
> a = c(1,2,3)
> a
[1] 1 2 3
> c(1,2,3)->a
> a
[1] 1 2 3
> c(1,2,3)->>a
> a
[1] 1 2 3
符号 | 含义 |
---|---|
: | 创建一串连续的数,间隔为1 |
%in% | 判断元素与向量的包含关系 |
%*% | 矩阵乘法 |
案例:
> 1:3
[1] 1 2 3
> 1.2:3
[1] 1.2 2.2
> 2%in%c(1,2,3)
[1] TRUE
> c(1,2)%in%c(1,2,3)
[1] TRUE TRUE
> a<-matrix(c(1,2,3,4,5,6),nrow = 2)
> b<-matrix(c(1,2,3,4,5,6),nrow = 3,byrow = T)
> a
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> b
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
> a%*%b
[,1] [,2]
[1,] 35 44
[2,] 44 56