这是一个向量

a <- c(TRUE, FALSE, FALSE, NA, FALSE, TRUE, NA, FALSE, TRUE)

我想要一个简单的函数,每次a中有TRUE,返回TRUE,每次a中有FALSENA,返回FALSE.

以下三件事是行不通的

a == TRUE
identical(TRUE, a)
isTRUE(a)

这里有一个解决方案

a[-which(is.na(a))]

但这似乎不是一个简单明了的解决方案

Is there another solution ?

以下是我知道的一些函数(和运算符):

identical()
isTRUE()
is.na()
na.rm()
&
|
!
  • 其他功能(操作符、提示等)是什么那是

  • NANaN之间有什么区别?

  • 除了TRUEFALSENANaN之外,还有其他"合乎逻辑的东西"吗?

谢谢!

推荐答案

按顺序回答您的问题:

1) ==运营商确实没有像你期望的那样对待NA.一个非常有用的函数是r-cookbook.com中的compareNA函数:

  compareNA <- function(v1,v2) {
    # This function returns TRUE wherever elements are the same, including NA's,
    # and false everywhere else.
    same <- (v1 == v2)  |  (is.na(v1) & is.na(v2))
    same[is.na(same)] <- FALSE
    return(same)
   }

2) NA代表"不可用",与一般NaN("非数字")不同.NA通常用于表示缺失数据的数字的默认值;NaN的产生通常是因为一个数字问题(对数为-1或类似).

3) 我不太确定"逻辑事物"是什么意思——许多不同的数据类型,包括数字向量,都可以用作逻辑运算符的输入.您可能想try 阅读R逻辑运算符页面:http://stat.ethz.ch/R-manual/R-patched/library/base/html/Logic.html.

希望这有帮助!

R相关问答推荐

带有分组因子和利克特量表答案列的R格式支持表

根据收件箱中的特定值提取列名

从有序数据中随机抽样

获取列中值更改的行号

迭代通过1个长度的字符串长字符R

如何改变x轴比例的列在面

使用across,starts_with和ifelse语句变更多个变量

Ggplot2中geom_tile的动态zoom

Data.table';S GForce-将多个函数应用于多列(带可选参数)

R-按最接近午夜的时间进行筛选

以字符格式导入的ExcelElectron 表格日期列标题

悬崖三角洲超大型群数计算导致整数溢出

如何创建累加到现有列累计和的新列?

R中Gamma回归模型均方误差的两种计算方法不一致

如何平滑或忽略R中变量的微小变化?

有没有办法一次粘贴所有列

如何在使用Alpha时让geom_curve在箭头中显示恒定透明度

R仅当存在列时才发生变异

在使用SliderInput In Shiny(R)设置输入数据的子集时,保留一些情节痕迹

在同一单元格中创建包含整数和百分比的交叉表