R语言 算术和逻辑运算符及数值


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>

猜你喜欢

转载自blog.csdn.net/qq_32811489/article/details/81107262
今日推荐