Hoe vind je alle unieke combinaties van twee vectoren in r
U kunt een van de volgende methoden gebruiken om alle unieke combinaties van elementen van twee vectoren in R te vinden:
Methode 1: Gebruik Tidyr
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
Methode 2: Gebruik data.table
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken.
Voorbeeld 1: Unieke combinaties vinden met Tidyr
De volgende code laat zien hoe je alle unieke combinaties van elementen tussen twee vectoren in R kunt vinden met behulp van de kruising() functie uit het Tidyr- pakket:
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
Het resultaat is een dataframe dat alle unieke combinaties van elementen tussen de twee vectoren weergeeft.
We kunnen zien dat er 12 unieke combinaties zijn.
Als je alleen het aantal unieke combinaties wilt weten, kun je deze functie omsluiten met de functie 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
Merk op dat de functie kruising() ook kan worden gebruikt met meer dan twee vectoren.
Geef eenvoudigweg de namen op van zoveel vectoren als u wilt in de functie cross() om het totale aantal unieke combinaties te vinden.
Voorbeeld 2: Vind unieke combinaties met data.table
De volgende code laat zien hoe u alle unieke combinaties van elementen tussen twee vectoren in R kunt vinden met behulp van de functie CJ() uit het data.table- pakket:
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
Het resultaat is een dataframe dat alle unieke combinaties van elementen tussen de twee vectoren weergeeft.
Merk op dat de resultaten van de functie CJ() overeenkomen met de resultaten van de functie kruising() .
De functie CJ() kan ook worden gebruikt met meer dan twee vectoren.
Geef eenvoudigweg de namen van zoveel vectoren als u wilt op in de functie CJ() om het totale aantal unieke combinaties te vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe unieke waarden per groep te tellen in R
Hoe u afzonderlijke rijen in een dataframe selecteert in R
Hoe u verschillende waarden kunt tellen met dplyr