Jak znaleźć wszystkie unikalne kombinacje dwóch wektorów w r
Aby znaleźć wszystkie unikalne kombinacje elementów dwóch wektorów w R, możesz użyć dowolnej z poniższych metod:
Metoda 1: Użyj Tidyra
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
Metoda 2: Użyj data.table
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce.
Przykład 1: Znajdowanie unikalnych kombinacji przy użyciu Tidyra
Poniższy kod pokazuje, jak znaleźć wszystkie unikalne kombinacje elementów pomiędzy dwoma wektorami w R za pomocą funkcji cross() z pakietu Tidyr :
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
Rezultatem jest ramka danych, która wyświetla wszystkie unikalne kombinacje elementów pomiędzy dwoma wektorami.
Widzimy, że istnieje 12 unikalnych kombinacji.
Jeśli chcesz tylko poznać liczbę unikalnych kombinacji, możesz owinąć tę funkcję funkcją 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
Należy pamiętać, że funkcji cross() można także używać z więcej niż dwoma wektorami.
Po prostu podaj nazwy dowolnej liczby wektorów do funkcji cross() , aby znaleźć całkowitą liczbę unikalnych kombinacji.
Przykład 2: Znajdź unikalne kombinacje za pomocą data.table
Poniższy kod pokazuje, jak znaleźć wszystkie unikalne kombinacje elementów pomiędzy dwoma wektorami w R za pomocą funkcji CJ() z pakietu data.table :
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
Rezultatem jest ramka danych, która wyświetla wszystkie unikalne kombinacje elementów pomiędzy dwoma wektorami.
Należy zauważyć, że wyniki funkcji CJ() odpowiadają wynikom funkcji cross() .
Funkcji CJ() można także używać z więcej niż dwoma wektorami.
Po prostu podaj nazwy dowolnej liczby wektorów do funkcji CJ() , aby znaleźć całkowitą liczbę unikalnych kombinacji.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak policzyć unikalne wartości według grupy w R
Jak wybrać pojedyncze wiersze w ramce danych w R
Jak policzyć różne wartości za pomocą dplyr