R语言基本运算符
运算符 |
描述 |
x + y |
加法 |
x - y |
减法 |
x * y |
乘法 |
x / y |
除法 |
x ^ y |
乘幂 |
x %% y |
模运算 |
x %/% y |
整数除法 |
x == y |
判断是否相等 |
x <= y |
判断是否小于等于 |
x >= y |
判断是否大于等于 |
x && y |
标量的逻辑“与”运算 |
x || y |
标量的逻辑“或”运算 |
x & y |
向量的逻辑“与”运算(x、y以及运算结果都是向量) |
X | y |
向量的逻辑“或”运算(x、y以及运算结果都是向量) |
!x |
逻辑非 |
R语言表面上没有标量的类型,因为标量可以看作是含有一个元素的向量,但我们看到表中,逻辑运算符对标量和向量有着不同的形式,这虽然看起来很奇怪,但这种区别很有必要。
> x <- c( TRUE, FALSE, TRUE )
> y <- c( TRUE, TRUE, FALSE )
> x & y
[1] TRUE FALSE FALSE
> x[1] && y[1]
[1] TRUE
> x && y
[1] TRUE
> if( x[1] && y[1] ) print( “both TRUE” )
[1] “both TRUE”
> if( x & y ) print( “both TRUE” )
[1] “both TRUE”
Warning message:In if (x & y) print(“both TRUE”) : the condition has length > 1 and only the first element will be used
问题的关键在于,if结构条件判断语句的取值,只能是一个逻辑值,而不是逻辑值的向量,这也是为什麽前面这个例子会出现警告提示,因此“&”和“&&”这两种运算符的存在是有必要的。
逻辑值TRUE和FALSE可以缩写为T和F(两者都必须大写),而在算术表达式中,它们会转换为1和0。
> 1 < 2
[1] TRUE
> ( 1 < 2 ) * ( 3 < 4 )
[1] 1
> ( 1 < 2 ) * ( 3 < 4 ) * ( 5 < 2 )
[1] 0
> ( 1 < 2 ) == TRUE
[1] TRUE
> ( 1 < 2 ) == 1
[1] TRUE
►创建自己的二元运算符
可以创建自己的二元运算符,只要写一个名称是以%开始和结束的函数。函数的两个参数都是某种数据类型,并返回同样类型的值。
> ”%a2b%” <- function( a, b ){
+ return ( a + 2 * b )
+ }
> 3 %a2b% 5
[1] 13
</div>
R语言基本运算符
运算符 |
描述 |
x + y |
加法 |
x - y |
减法 |
x * y |
乘法 |
x / y |
除法 |
x ^ y |
乘幂 |
x %% y |
模运算 |
x %/% y |
整数除法 |
x == y |
判断是否相等 |
x <= y |
判断是否小于等于 |
x >= y |
判断是否大于等于 |
x && y |
标量的逻辑“与”运算 |
x || y |
标量的逻辑“或”运算 |
x & y |
向量的逻辑“与”运算(x、y以及运算结果都是向量) |
X | y |
向量的逻辑“或”运算(x、y以及运算结果都是向量) |
!x |
逻辑非 |
R语言表面上没有标量的类型,因为标量可以看作是含有一个元素的向量,但我们看到表中,逻辑运算符对标量和向量有着不同的形式,这虽然看起来很奇怪,但这种区别很有必要。
> x <- c( TRUE, FALSE, TRUE )
> y <- c( TRUE, TRUE, FALSE )
> x & y
[1] TRUE FALSE FALSE
> x[1] && y[1]
[1] TRUE
> x && y
[1] TRUE
> if( x[1] && y[1] ) print( “both TRUE” )
[1] “both TRUE”
> if( x & y ) print( “both TRUE” )
[1] “both TRUE”
Warning message:In if (x & y) print(“both TRUE”) : the condition has length > 1 and only the first element will be used
问题的关键在于,if结构条件判断语句的取值,只能是一个逻辑值,而不是逻辑值的向量,这也是为什麽前面这个例子会出现警告提示,因此“&”和“&&”这两种运算符的存在是有必要的。
逻辑值TRUE和FALSE可以缩写为T和F(两者都必须大写),而在算术表达式中,它们会转换为1和0。
> 1 < 2
[1] TRUE
> ( 1 < 2 ) * ( 3 < 4 )
[1] 1
> ( 1 < 2 ) * ( 3 < 4 ) * ( 5 < 2 )
[1] 0
> ( 1 < 2 ) == TRUE
[1] TRUE
> ( 1 < 2 ) == 1
[1] TRUE
►创建自己的二元运算符
可以创建自己的二元运算符,只要写一个名称是以%开始和结束的函数。函数的两个参数都是某种数据类型,并返回同样类型的值。
> ”%a2b%” <- function( a, b ){
+ return ( a + 2 * b )
+ }
> 3 %a2b% 5
[1] 13
</div>