med*_*oll 475
无论是match()
(返回第一外观)和%in%
(返回一个布尔)功能被设计用于此.
v <- c('a','b','c','e')
'b' %in% v
## returns TRUE
match('b',v)
## returns the first location of 'b', in this case: 2
Run Code Online (Sandbox Code Playgroud)
Jus*_*afe 168
is.element()
使代码更易读,并且与之相同 %in%
v <- c('a','b','c','e')
is.element('b', v)
'b' %in% v
## both return TRUE
is.element('f', v)
'f' %in% v
## both return FALSE
subv <- c('a', 'f')
subv %in% v
## returns a vector TRUE FALSE
is.element(subv, v)
## returns a vector TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
Dan*_*ein 67
的任何()函数使得对于可读代码
> w <- c(1,2,3)
> any(w==1)
[1] TRUE
> v <- c('a','b','c')
> any(v=='b')
[1] TRUE
> any(v=='f')
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
ish*_*007 57
我将根据输出对选项进行分组.假设所有例子都有以下矢量.
v <- c('z', 'a','b','a','e')
Run Code Online (Sandbox Code Playgroud)
用于检查存在:
%在%
> 'a' %in% v
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
任何()
> any('a'==v)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
is.element()
> is.element('a', v)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
寻找第一次出现:
比赛()
> match('a', v)
[1] 2
Run Code Online (Sandbox Code Playgroud)
为了找到所有出现作为指数的向量:
哪一个()
> which('a' == v)
[1] 2 4
Run Code Online (Sandbox Code Playgroud)
用于查找所有出现的逻辑向量:
==
> 'a' == v
[1] FALSE TRUE FALSE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
编辑:从列表中删除grep()和grepl(),原因是注释中提到的原因
ars*_*ars 34
您可以使用%in%
运营商:
vec <- c(1, 2, 3, 4, 5)
1 %in% vec # true
10 %in% vec # false
Run Code Online (Sandbox Code Playgroud)
小智 18
还要找到元素的位置"哪个"可以用作
pop <- c(3,4,5,7,13)
which(pop==13)
Run Code Online (Sandbox Code Playgroud)
并且要找到目标向量中未包含的元素,可以这样做:
pop <- c(1,2,4,6,10)
Tset <- c(2,10,7) # Target set
pop[which(!(pop%in%Tset))]
Run Code Online (Sandbox Code Playgroud)
小智 12
为此,我真的很喜欢grep()和grepl().
grep()返回一个整数向量,表示匹配的位置.
yo <- c("a", "a", "b", "b", "c", "c")
grep("b", yo)
[1] 3 4
Run Code Online (Sandbox Code Playgroud)
grepl()返回一个逻辑向量,匹配位置为"TRUE".
yo <- c("a", "a", "b", "b", "c", "c")
grepl("b", yo)
[1] FALSE FALSE TRUE TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
这些函数区分大小写.