R中的%in%中缀似乎与表达式两侧的NA值向量一样工作(如下例所示).我想问一问,这种行为是否有明确的定义,以及使用这种表达方式是否有重大警告?

c(0, NA) %in% c(1, 2, 3, NA)

推荐答案

如果你看一下%in%的源代码,你会发现它是通过match实现的:

`%in%`
#> function (x, table) 
#> match(x, table, nomatch = 0L) > 0L

如果你查看match的文档,你会看到:

对于所有类型,NANA匹配,没有其他值

因此,对您的问题的回答是"是的,它定义得很好,并且有文档记录".它的使用需要注意的是,NA值有时是无法获取和意外的.如果你想匹配NA,一个更传统的习语应该是is.na(x)any(is.na(x))

R相关问答推荐

更改Heatmap Annotation对象的名称

如何使用shinyChatR包配置聊天机器人

在(g)子中使用asserable字符

用约翰逊分布进行均值比较

将选定的索引范围与阈值进行比较

汇总数据帧中的复制列,保持行的唯一性

有没有可能用shiny 的书签恢复手风琴面板?

根据约束随机填充向量的元素

数据集上的R循环和存储模型系数

如何在Quarto中使用美人鱼图表中的标记来加粗文本

分隔日期格式为2020年7月1日

如何在访问之前下载的输入时同时上传和处理所有指定的shiny 输入?

将每晚的平均值与每晚的值进行比较,统计是否有效?

如何修复geom_rect中的层错误?

R中的交叉表

以列名的字符向量作为参数按行应用自定义函数

根据单个条件变异多个列

判断列集是否以任意顺序按行顺序在R中相同

dmgr:使用最后一列的数据进行Mutations

如何根据列名和行名求和矩阵的值?