Loading

R学习-8.Logic

Logic

这一节简单介绍在R中的逻辑运算。

TRUEFALSE是R中的两个逻辑值,也称布尔值。一个逻辑表达式的最终结果是TRUE或者FALSE

> TRUE == TRUE # 判断是否相等
[1] TRUE
> (FALSE == TRUE) == FALSE # 先运算括号里的
[1] TRUE
> 6 == 7
[1] FALSE
> 6 < 7
[1] TRUE
> 8 > 8
[1] FALSE
> 8 >= 8 # 是否大于等于
[1] TRUE
> 9 != 10 # 是否不等于
[1] TRUE

&表示AND运算符,当符号两边值都为TRUE时,整个表达式的值为TRUE&&&类似,不过&&的左右两边有vector时,只将第一个元素拿出来进行比较。

> TRUE & TRUE
[1] TRUE
> TRUE & FALSE
[1] FALSE
> (FALSE == TRUE) & FALSE
[1] FALSE
> (FALSE != TRUE) & TRUE
[1] TRUE
> TRUE & c(TRUE, FALSE, TRUE)
[1]  TRUE FALSE  TRUE
> TRUE && c(TRUE, FALSE, TRUE)
[1] TRUE

|表示OR运算符,当符号两边有一个为TRUE时,整个表达式的值为TRUE|||类似,不过&&的左右两边有vector时,只将第一个元素拿出来进行比较。

> TRUE | c(TRUE, FALSE, FALSE)
[1] TRUE TRUE TRUE
> TRUE || c(TRUE, FALSE, FALSE)
[1] TRUE

在一个既有算术运算、比较运算和逻辑运算的表达式中,是先进行算术,然后进行比较,最后是逻辑运算。同等优先级是从左到右计算。逻辑运算中先进行AND运算再进行OR运算。

> 1 + 2 > 3 + 2 & 1 + 2 < 6 + 3
[1] FALSE
> 5 > 8 || 6 != 8 && 4 > 3.9 # FALSE || TRUE && TRUE
[1] TRUE

函数isTRUE()用来判断一个表达式值是否为TRUE,

!NOT运算符,表示将逻辑值取反,即NOT FALSE 等于TRUE,NOT TRUE等于FALSE

> isTRUE(6>5)
[1] TRUE
> !isTRUE(8 != 5)
[1] FALSE
> isTRUE(8 != 5)
[1] TRUE

函数identical()判断两个对象是否相等。

> identical('twins', 'twins')
[1] TRUE
> identical(123, 123)
[1] TRUE
> identical(123, 321)
[1] FALSE

xor()异或运算函数,当两个逻辑值不一样时,返回TRUE, 其余情况则返回FALSE

> xor(TRUE, FALSE)
[1] TRUE
> xor(FALSE,TRUE)
[1] TRUE
> xor(FALSE,FALSE)
[1] FALSE
> xor(TRUE,TRUE)
[1] FALSE
> xor(5 == 6, !FALSE)
[1] TRUE

which()可以接受一组逻辑vector,返回元素值为TRUE的索引值。

> ints <- sample(10) # 创建一组整数vector
> ints
 [1]  1  5 10  8  6  3  2  4  7  9
> ints > 7
[1] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
> which(ints > 7)
[1]  3  4 10
> idx = which(ints > 7)
> idx
[1]  3  4 10
> ints[idx]
[1] 10  8  9

any()当存在元素为TRUE时,则返回TRUEall()当所有元素为TRUE时,才返回TRUE

> ints < 0
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> ints > 5
 [1] FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE
> any(ints < 0)
[1] FALSE
> any(ints > 5)
[1] TRUE
> ints > 0
 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> all(ints > 0)
[1] TRUE
> all(ints > 5)
[1] FALSE

上一节:R学习-7.Matrices and Data Frames

上一节:R学习-9.Functions

posted @ 2020-06-23 20:38  何物昂  阅读(309)  评论(0编辑  收藏  举报