测试向量是否包含给定元素
如何检查向量是否包含给定值?
How to check if a vector contains a given value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何检查向量是否包含给定值?
How to check if a vector contains a given value?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
match()
(返回第一次出现)和%in%
(返回布尔值)函数都是为此设计的。Both the
match()
(returns the first appearance) and%in%
(returns a Boolean) functions are designed for this.is.element()
使代码更具可读性,并且与%in%
相同is.element()
makes for more readable code, and is identical to%in%
我将根据输出对选项进行分组。 假设所有示例都使用以下向量。
用于检查存在:
%in%
any()
is.element()
用于查找第一次出现:
match()
用于查找作为索引向量的所有出现:
which()
用于查找所有出现的逻辑向量:
==
编辑:
由于评论中提到的原因,从列表中删除 grep() 和 grepl()
I will group the options based on output. Assume the following vector for all the examples.
For checking presence:
%in%
any()
is.element()
For finding first occurance:
match()
For finding all occurances as vector of indices:
which()
For finding all occurances as logical vector:
==
Edit:
Removing grep() and grepl() from the list for reason mentioned in comments
any() 函数使得代码可读
The any() function makes for readable code
您可以使用
%in%
运算符:You can use the
%in%
operator:另外,为了查找可用作“which”的元素的位置
以及查找不包含在目标向量中的元素,可以这样做:
Also to find the position of the element "which" can be used as
and to find the elements which are not contained in the target vector, one may do this:
我真的很喜欢 grep() 和 grepl() 用于此目的。
grep() 返回一个整数向量,指示匹配项的位置。
grepl() 返回一个逻辑向量,在匹配位置处带有“TRUE”。
这些函数区分大小写。
I really like grep() and grepl() for this purpose.
grep() returns a vector of integers, which indicate where matches are.
grepl() returns a logical vector, with "TRUE" at the location of matches.
These functions are case-sensitive.
检查向量中是否存在元素的另一种方法是使用
inops
中的%in{}%
语法 程序包,如下所示:由 reprex 包 (v2.0.1)
Another option to check if a element exists in a vector is by using the
%in{}%
syntax from theinops
package like this:Created on 2022-07-16 by the reprex package (v2.0.1)