R에서 두 벡터의 모든 고유한 조합을 찾는 방법
다음 방법 중 하나를 사용하여 R에서 두 벡터 요소의 고유한 조합을 모두 찾을 수 있습니다.
방법 1: Tidyr 사용
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
방법 2: data.table 사용
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
다음 예에서는 이러한 각 방법을 실제로 사용하는 방법을 보여줍니다.
예시 1: Tidyr를 사용하여 고유한 조합 찾기
다음 코드는 Tidyr 패키지의 Crossing() 함수를 사용하여 R의 두 벡터 사이에서 모든 고유한 요소 조합을 찾는 방법을 보여줍니다.
library (tidyr)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display all unique combinations of region and points
crossing(region, points)
# A tibble: 12 x 2
region points
1 East 0
2 East 5
3 East 10
4 North 0
5 North 5
6 North 10
7 South 0
8 South 5
9South 10
10 West 0
11 West 5
12 West 10
결과는 두 벡터 사이의 모든 고유한 요소 조합을 표시하는 데이터 프레임입니다.
12개의 고유한 조합이 있음을 알 수 있습니다.
고유한 조합의 수만 알고 싶다면 이 함수를 nrow() 함수로 래핑할 수 있습니다.
library (tidyr)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display number of unique combinations of region and points
nrow(crossing(region, points))
[1] 12
Crossing() 함수는 두 개 이상의 벡터와 함께 사용할 수도 있습니다.
Cross() 함수에 원하는 만큼의 벡터 이름을 제공하면 총 고유 조합 수를 찾을 수 있습니다.
예 2: data.table을 사용하여 고유한 조합 찾기
다음 코드는 data.table 패키지의 CJ() 함수를 사용하여 R의 두 벡터 사이에서 모든 고유한 요소 조합을 찾는 방법을 보여줍니다.
library (data.table)
#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)
#display all unique combinations of region and points
CJ(region, points, unique= TRUE )
region points
1: East 0
2: East 5
3: East 10
4: North 0
5: North 5
6: North 10
7: South 0
8: South 5
9: South 10
10: West 0
11: West 5
12: West 10
결과는 두 벡터 사이의 모든 고유한 요소 조합을 표시하는 데이터 프레임입니다.
CJ() 함수의 결과는 Crossing() 함수의 결과와 일치합니다.
CJ() 함수는 두 개 이상의 벡터와 함께 사용할 수도 있습니다.
CJ() 함수에 원하는 만큼의 벡터 이름을 제공하면 총 고유 조합 수를 찾을 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 그룹별로 고유한 값을 계산하는 방법
R의 데이터 프레임에서 단일 행을 선택하는 방법
dplyr을 사용하여 고유 값을 계산하는 방법