和python基本一致,除了:R可以两个字符串进行比较(alphabetical order)。
python中的逻辑运算符为:and
、or
、not
——英文单词。
R中的逻辑运算符为:&
、|
、!
——标点符号。
&&
比较两个单值时和&
效果一样,但是在比较两个vec时只会返回第一个比较结果
c(TRUE, TRUE, FALSE) & c(TRUE, FALSE, FALSE)
结果为 TRUE FALSE FALSE
c(TRUE, TRUE, FALSE) && c(TRUE, FALSE, FALSE)
结果为 TRUE
||
同样一些常用的逻辑运算函数:
all
: Given a set of logical vectors, are all of the values true?any
: Given a set of logical vectors, are any of the values true?which
: Give the TRUE
s indices of a logical object.
which.min
: 最小值的下标which.max
: 最大值的下标identical
duplicated
: determines which elements are duplicates of elements with smaller subscripts.
unique
去重,类似于Python中的set函数>>> all(c(FALSE,FALSE,TRUE))
[1] FALSE
>>> any(c(FALSE,FALSE,TRUE))
[1] TRUE
>>> which(c(FALSE,FALSE,TRUE))
[1] 3
>>> duplicated(c(1,2,3,NA,3,NA))
[1] FALSE FALSE FALSE FALSE TRUE TRUE
和python不同的地方在于: