반응형
다른 벡터가 아닌 한 벡터에 무엇이 있는지 어떻게 알 수 있습니까?
matlab에는 한 벡터에서 값을 찾는 방법이 있지만 다른 벡터에서는 그렇지 않습니다.
예를 들면 :
x <- c(1,2,3,4)
y <- c(2,3,4)
안에 x
없는 값 y
이 1 이라는 것을 알려주는 함수가 있습니까?
setdiff () (차이 설정) 함수를 사용할 수 있습니다.
> setdiff(x, y)
[1] 1
예. 벡터의 경우 단순히 %in%
연산자 또는 is.element()
함수 를 사용할 수 있습니다 .
> x[!(x %in% y)]
1
행렬의 경우 다양한 접근 방식이 있습니다. merge()
아마도 가장 간단합니다. 해당 시나리오에 대해이 질문을 살펴 보는 것이 좋습니다 .
setdiff, union, intersect, setequal 및 is.element에 대한 R의 도움말 파일은 R 의 표준 집합 함수에 대한 정보를 제공합니다.
setdiff(x, y)
x
에없는 요소를 반환합니다 y
.
위에서 언급했듯이 이것은 비대칭 차이입니다. 예를 들면 다음과 같습니다.
> x <- c(1,2,3,4)
> y <- c(2,3,4,5)
>
> setdiff(x, y)
[1] 1
> setdiff(y, x)
[1] 5
> union(setdiff(x, y), setdiff(y, x))
[1] 1 5
x[is.na(match(x,y))]
setdiff()
출력이 입력 순서에 따라 달라지기 때문에 까다로운 함수입니다. 대신에와 정반대되는 간단한 함수를 작성할 수 있습니다 intersect
. 이것은 훨씬 낫습니다.
>difference <- function(x, y) {
c(setdiff(x, y), setdiff(y, x))
}
#Now lets test it.
>x <- c(1,2,3,4)
>y <- c(2,3,4,5)
>difference(x,y)
[1] 1 5
참고 URL : https://stackoverflow.com/questions/1837968/how-to-tell-what-is-in-one-vector-and-not-another
반응형
'Programing' 카테고리의 다른 글
Maven에서 Javac 컴파일러를 찾을 수 없습니다. (0) | 2020.10.23 |
---|---|
Visual Studio에서 현재 탭을 제외한 모든 탭을 닫는 바로 가기 키? (0) | 2020.10.23 |
Swift에서 Int를 기반으로 UITableView의 특정 행 새로 고침 (0) | 2020.10.23 |
사용자 지정 SSL 인증서 (AWS IAM에 저장 됨)를 선택할 수 없습니다. (0) | 2020.10.23 |
끝에서 시작까지 C ++ 벡터 반복 (0) | 2020.10.23 |