Comment trouver toutes les combinaisons uniques de deux vecteurs dans R



Vous pouvez utiliser l’une des méthodes suivantes pour rechercher toutes les combinaisons uniques d’éléments de deux vecteurs dans R :

Méthode 1 : utiliser Tidyr

library(tidyr)

#find unique combinations of elements from vector1 and vector2
crossing(vector1, vector2)

Méthode 2 : utiliser data.table

library(data.table)

#find unique combinations of elements from vector1 and vector2
CJ(vector1, vector2, unique=TRUE) 

Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.

Exemple 1 : Trouver des combinaisons uniques à l’aide de Tidyr

Le code suivant montre comment trouver toutes les combinaisons uniques d’éléments entre deux vecteurs dans R en utilisant la fonction crossing() du package Tidyr :

library(tidyr)

#define vectors
region=c('North', 'South', 'East', 'West')
points=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
 9 South      10
10 West        0
11 West        5
12 West       10

Le résultat est un bloc de données qui affiche toutes les combinaisons uniques d’éléments entre les deux vecteurs.

Nous pouvons voir qu’il existe 12 combinaisons uniques.

Si vous souhaitez uniquement connaître le nombre de combinaisons uniques, vous pouvez envelopper cette fonction avec la fonction nrow() :

library(tidyr)

#define vectors
region=c('North', 'South', 'East', 'West')
points=c(0, 5, 10)

#display number of unique combinations of region and points
nrow(crossing(region, points))

[1] 12

Notez que la fonction crossing() peut également être utilisée avec plus de deux vecteurs.

Fournissez simplement les noms d’autant de vecteurs que vous le souhaitez à la fonction crossing() pour trouver le nombre total de combinaisons uniques.

Exemple 2 : Trouver des combinaisons uniques à l’aide de data.table

Le code suivant montre comment trouver toutes les combinaisons uniques d’éléments entre deux vecteurs dans R en utilisant la fonction CJ() du package data.table :

library(data.table)

#define vectors
region=c('North', 'South', 'East', 'West')
points=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

Le résultat est un bloc de données qui affiche toutes les combinaisons uniques d’éléments entre les deux vecteurs.

Notez que les résultats de la fonction CJ() correspondent aux résultats de la fonction crossing() .

La fonction CJ() peut également être utilisée avec plus de deux vecteurs.

Fournissez simplement les noms d’autant de vecteurs que vous le souhaitez à la fonction CJ() pour trouver le nombre total de combinaisons uniques.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment compter les valeurs uniques par groupe dans R
Comment sélectionner des lignes uniques dans un bloc de données dans R
Comment compter des valeurs distinctes à l’aide de dplyr

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *