运算符是一个符号,告诉编译器执行特定的数学或逻辑操作,R语言有丰富的内置运算符。
一、算术运算符
下面列出了用R语言支持的算术运算符。运算符作用于向量中的每个元素。
1、加运算符
【符号】+
【功能】两个向量相加
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v+t)
【输出】[1] 10.0 8.5 10.0
2、减运算符
【符号】-
【功能】从第一个向量减去第二个向量
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v-t)
【输出】[1] -6.0 2.5 2.0
3、乘运算符
【符号】*
【功能】两个向量相乘
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v*t)
【输出】[1] 16.0 16.5 24.0
4、除运算符
【符号】/
【功能】将第一个向量与第二向量相除
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v/t)
【输出】[1] 0.250000 1.833333 1.500000
5、求余运算符
【符号】%%
【功能】得到第一向量与第二个向量余数
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%%t)
【输出】[1] 2.0 2.5 2.0
6、整除运算符
【符号】%/%
【功能】第一个向量与第二(商)相除后取整
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%/%t)
【输出】[1] 0 1 1
7、幂运算符
【符号】^
【功能】第一向量按第二向量求幂
【代码】
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v^t)
【输出】[1] 256.000 166.375 1296.000
二、关系运算符
下面列出了R语言中支持的关系运算符。第一向量的每个元素与第二向量的相应元素进行比较。比较的结果是一个布尔值。
1、向量大于运算符
【符号】>
【功能】检查是否第一向量的每个元素大于第二向量的相应元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>t)
【输出】[1] FALSE TRUE FALSE FALSE
2、向量小于运算符
【符号】<
【功能】检查是否第一向量的每个元素小于第二向量的相应元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v<t)
【输出】[1] TRUE FALSE TRUE FALSE
3、向量等于运算符
【符号】==
【功能】检查是否第一向量的每个元素等于第二向量的相应元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v==t)
【输出】[1] FALSE FALSE FALSE TRUE
4、向量大于等于运算符
【符号】>=
【功能】检查是否第一向量的每个元素是大于或等于第二向量的相应元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>=t)
【输出】[1] FALSE TRUE FALSE TRUE
5、向量小于等于运算符
【符号】<=
【功能】检查是否第一向量的每个元素是小于或等于第二向量的相应的元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v<=t)
【输出】[1] TRUE FALSE TRUE TRUE
6、向量不等于运算符
【符号】!=
【功能】检查是否第一向量的每个元素不等于第二向量的相应元素
【代码】
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v!=t)
【输出】[1] TRUE TRUE TRUE FALSE
三、逻辑运算符
下面列出了R语言中支持的逻辑运算符。它仅适用于一种逻辑,数字或复杂的矢量。所有数值大于1则认为逻辑值为TRUE。所述第一向量的每个元素与所述第二向量的相应元素进行比较。比较的结果是一个布尔值。
1、且运算符
【符号】&
【功能】这就是所谓的元素逻辑AND运算符。它结合与第二向量的相应元素的第一向量的每个元素,如果这两个元素类型相同则给出一个TRUE
【代码】
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)
【输出】[1] TRUE TRUE FALSE TRUE
2、或运算符
【符号】|
【功能】这就是所谓的逐元素逻辑或运算符。它结合与第二向量的相应元素的第一向量的每个元素,如果使用这些元素之一为TRUE则给出一个TRUE
【代码】
v <- c(3,1,TRUE,2+2i)
t <- c(4,1,FALSE,2+3i)
print(v|t)
v <- c(3,0,TRUE,2+2i)
t <- c(4,0,FALSE,2+3i)
print(v|t)
【输出】
[1] TRUE TRUE TRUE TRUE
[1] TRUE FALSE TRUE TRUE
3、非运算符
【符号】!
【功能】这就是所谓的逻辑非运算符。取向量的每个元素,并给出了相反逻辑值
【代码】
v <- c(3,0,TRUE,2+2i)
print(!v)
【输出】[1] FALSE TRUE FALSE FALSE
4、第一个元素与(且)运算符
【符号】&&
【功能】所谓的逻辑与(且)运算符。取两个向量的第一元素,当两个元素类型相同取TRUE
【代码】
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)
【输出】[1] TRUE
4、第一个元素或运算符
【符号】||
【功能】所谓的逻辑或运算符,取两个向量的第一元素,当两个元素类型相同取TRUE
【代码】
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)
v <- c(1,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v||t)
v <- c(1,0,TRUE,2+2i)
t <- c(2,3,TRUE,2+3i)
print(v||t)
【输出】
[1] FALSE
[1] TRUE
[1] TRUE
四、赋值运算符
这些操作符是用来分配值到向量。
1、左分配运算符
【符号】<-、=、<<-
【代码】
v1 <- c(3,1,TRUE,2+3i)
v2 <<- c(3,1,TRUE,2+3i)
v3 = c(3,1,TRUE,2+3i)
print(v1)
print(v2)
print(v3)
【输出】
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
1、右分配运算符
【符号】->、->>
【代码】
c(3,1,TRUE,2+3i) -> v1
c(3,1,TRUE,2+3i) ->> v2
print(v1)
print(v2)
【输出】
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
"<-"是R的赋值符号,表示把"<-"后面的内容赋值给"<-"前面的内容,即把相应的值赋给"<-"前面所指的变量。R的赋值符号除了"<-"外,还有"->"和“=”。"->"的用法正好和"<-"相反,“=”和"<-"基本功能一样,但不是标准语法,个别情况下会出现意想不到的问题,不建议使用!
五、其他运算符
这些操作符被用于为特定的目的,而不是一般的数学或逻辑运算。
1、冒号运算符
【符号】:
【功能】它创建顺序一系列数字的向量
【代码】
v <- 2:8
print(v)
【输出】[1] 2 3 4 5 6 7 8
2、in运算符
【符号】%in%
【功能】这个操作符用于识别一个元素是否属于(在)一个向量
【代码】
v1 <- 8
v2 <- 12
t <- 1:10
print(v1 %in% t)
print(v2 %in% t)
【输出】
[1] TRUE
[1] FALSE
3、转置乘运算符
【符号】%*%
【功能】这个操作符是用来乘以它的转置矩阵
【代码】
M = matrix( c(2,6,5,1,10,4), nrow=2,ncol=3,byrow = TRUE)
t = M %*% t(M)
print(t)
【输出】
[,1] [,2]
[1,] 65 82
[2,] 82 117