IT-Swarm.Net

벡터는 요소를 포함하고 있습니다.

벡터에 주어진 값이 들어 있는지 확인하는 방법?

448
medriscoll

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
443
medriscoll

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
158
Justin Nafe

any () 함수는 읽을 수있는 코드를 만듭니다.

> 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
65
Dan Goldstein

출력에 따라 옵션을 그룹화합니다. 모든 예제에 대해 다음 벡터를 가정합니다.

v <- c('z', 'a','b','a','e')

존재 확인 용 :

% in %

> 'a' %in% v
[1] TRUE

any ()

> any('a'==v)
[1] TRUE

is.element ()

> is.element('a', v)
[1] TRUE

첫 번째 출현 발견 :

일치 ()

> match('a', v)
[1] 2

모든 출현을 인덱스 벡터로 찾는 경우 :

which ()

> which('a' == v)
[1] 2 4

모든 출현을 논리 벡터로 찾는 경우 :

==

> 'a' == v
[1] FALSE  TRUE FALSE  TRUE FALSE

편집 : grep ()grepl ()) 코멘트에서 언급 된 이유로 목록에서 제거

41
ishandutta2007

%in% 연산자를 사용할 수 있습니다.

vec <- c(1, 2, 3, 4, 5)
1 %in% vec # true
10 %in% vec # false
34
ars

또한 "which"요소의 위치를 ​​찾기 위해

pop <- c(3,4,5,7,13)

which(pop==13)

대상 벡터에 포함되지 않은 요소를 찾으려면 다음을 수행하십시오.

pop <- c(1,2,4,6,10)

Tset <- c(2,10,7)   # Target set

pop[which(!(pop%in%Tset))]
18
Armin

나는 grep ()과 grepl ()을 정말 좋아한다.

grep ()은 일치하는 위치를 나타내는 정수 벡터를 반환합니다.

yo <- c("a", "a", "b", "b", "c", "c")

grep("b", yo)
[1] 3 4

grepl ()은 일치하는 위치에 "TRUE"가있는 논리 벡터를 반환합니다.

yo <- c("a", "a", "b", "b", "c", "c")

grepl("b", yo)
[1] FALSE FALSE  TRUE  TRUE FALSE FALSE

이 함수는 대소 문자를 구분합니다.

11
ojdajuiceman