R语言中感叹号(!)的含义是什么?对应代码如何使用?
R语言中感叹号
!的含义及示例代码用法说明 基础含义
R中的!是逻辑非运算符,作用是对布尔值取反:
- 输入为
TRUE时,返回FALSE - 输入为
FALSE时,返回TRUE
如果作用在非布尔类型的对象上,R会先将对象强制转换为布尔型,再执行取反操作。
示例代码中的!用法解析
你给出的代码是用于剔除向量的箱线图离群值,原代码存在语法疏漏,修正后的可运行版本为:
x <- x[!x %in% boxplot(x)$out]
我们从右到左拆分逻辑:
boxplot(x)$out:调用箱线图计算逻辑,返回向量x中所有判定为离群点的取值x %in% boxplot(x)$out:遍历x的每一个元素,判断该元素是否属于离群点集合,返回一个和x长度一致的布尔向量,是离群点对应位置为TRUE,否则为FALSE!x %in% boxplot(x)$out:对上面得到的布尔向量整体取反,此时非离群点的位置变为TRUE,离群点位置变为FALSE- 用这个取反后的布尔向量对原
x做索引筛选,就能只保留非离群的正常数值,再赋值回x,就完成了离群值剔除操作。
内容的提问来源于stack exchange,提问作者Mahabub Alam
相关产品推荐
相关产品推荐

