Logic 位于 base 包(package)。 说明
这些运算符作用于原始向量、逻辑向量和number-like向量。
用法
! x
x & y
x && y
x | y
x || y
xor(x, y)
isTRUE (x)
isFALSE(x)
参数
x , y |
|
细节
!表示逻辑非(NOT)。
&和&&表示逻辑AND,|和||表示逻辑OR。较短的形式以与算术运算符大致相同的方式执行元素比较。较长的形式从左到右计算,直到确定结果为止。较长的形式适用于编程 control-flow,并且通常在 if 子句中首选。
在 && 或 || 中使用包含多个元素的向量将产生错误。
xor 表示元素异或。
isTRUE(x)是相同的{ is.logical(x) && length(x) == 1 && !is.na(x) && x };isFALSE()类似地定义。最后,if(isTRUE(cond))可能优于if(cond)因为NAs.
在早些时候R版本,isTRUE <- function(x) identical(x, TRUE),有一个错误的缺点,例如,对于x <- c(val = TRUE).
数字和复数向量将被强制为逻辑值,零为假,所有非零值为真。对于 ! 、 & 、 | 和 xor ,原始向量的处理无需任何强制,这些运算符按位应用(因此 ! 是 1 补码)。
运算符 ! 、 & 和 | 是通用函数:可以单独为它们编写方法,也可以通过 Ops (或 S4 Logic ,见下文)组通用函数编写方法。 (有关如何计算调度的信息,请参阅Ops。)
NA 是有效的逻辑对象。当 x 或 y 的组件是 NA 时,如果结果不明确,则结果将为 NA。换句话说, NA & TRUE 的计算结果为 NA ,但 NA & FALSE 的计算结果为 FALSE 。请参阅下面的示例。
有关这些运算符的优先级,请参阅Syntax:与许多其他语言(包括 S)不同,AND 和 OR 运算符不具有相同的优先级(AND 运算符的优先级高于 OR 运算符)。
值
对于 ! ,与 x 长度相同的逻辑或原始向量(对于原始 x ):名称、维度和维度名称从 x 复制,以及所有其他属性(包括类)(如果没有强制转换)完毕。
对于 | 、 & 和 xor 为逻辑向量或原始向量。如果涉及零长度向量,则结果的长度为零。否则,较短向量的元素将根据需要进行回收(当它们仅部分回收时,使用 warning)。确定结果属性的规则相当复杂。大多数属性都取自较长的参数,如果它们的长度相同,则取自第一个参数。如果名称与答案的长度相同,则将从第一个名称复制,否则从第二个名称复制。对于时间序列,仅当系列兼容且使用时间序列的类和 tsp 属性(如果两者都相同时,则相同)时,才允许执行这些操作。对于数组(和数组结果),如果它是数组,则从第一个参数获取维度和暗名称,否则从第二个参数获取。
对于 || 、 && 和 isTRUE ,长度为 1 的逻辑向量。
S4方法
! 、 & 和 | 是 S4 泛型,Logic 组泛型的后两部分(因此方法需要参数名称 e1, e2 )。
注意
元素运算符有时被称为函数,例如`&`(x, y) :请参阅Ops 中如何完成argument-matching 的说明。
例子
y <- 1 + (x <- stats::rpois(50, lambda = 1.5) / 4 - 1)
x[(x > 0) & (x < 1)] # all x values between 0 and 1
if (any(x == 0) || any(y == 0)) "zero encountered"
## construct truth tables :
x <- c(NA, FALSE, TRUE)
names(x) <- as.character(x)
outer(x, x, `&`) ## AND table
outer(x, x, `|`) ## OR table
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
any 和 all 用于对许多标量参数进行 OR 和 AND 运算。
Syntax 用于运算符优先级。
bitwAnd 用于整数向量的按位版本。
相关用法
- R Last.value 最后计算的表达式的值
- R La_version 拉帕克版本
- R La_library 拉帕克库
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
- R search 给出 R 对象的搜索路径
- R Defunct 将对象标记为已失效
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Logical Operators。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
