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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *