R'de iki vektörün tüm benzersiz kombinasyonları nasıl bulunur?
R’deki iki vektörün öğelerinin tüm benzersiz kombinasyonlarını bulmak için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:
Yöntem 1: Tidyr’i kullanın
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
Yöntem 2: data.table’ı kullanma
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
Aşağıdaki örnekler bu yöntemlerin her birinin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Tidyr’i kullanarak benzersiz kombinasyonlar bulma
Aşağıdaki kod, Tidyr paketindeki cross() işlevini kullanarak R’deki iki vektör arasındaki tüm benzersiz öğe kombinasyonlarının nasıl bulunacağını gösterir:
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
Sonuç, iki vektör arasındaki tüm benzersiz öğe kombinasyonlarını görüntüleyen bir veri çerçevesidir.
12 benzersiz kombinasyonun olduğunu görebiliriz.
Yalnızca benzersiz kombinasyonların sayısını bilmek istiyorsanız, bu işlevinrow() işleviyle sarabilirsiniz:
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() fonksiyonunun ikiden fazla vektörle de kullanılabileceğini unutmayın.
Benzersiz kombinasyonların toplam sayısını bulmak için cross() işlevine istediğiniz sayıda vektörün adını girmeniz yeterlidir.
Örnek 2: data.table’ı kullanarak benzersiz kombinasyonlar bulun
Aşağıdaki kod, data.table paketindeki CJ() işlevini kullanarak R’deki iki vektör arasındaki tüm benzersiz öğe kombinasyonlarının nasıl bulunacağını gösterir:
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
Sonuç, iki vektör arasındaki tüm benzersiz öğe kombinasyonlarını görüntüleyen bir veri çerçevesidir.
CJ() fonksiyonunun sonuçlarının cross() fonksiyonunun sonuçlarına karşılık geldiğini unutmayın.
CJ() işlevi ikiden fazla vektörle de kullanılabilir.
Benzersiz kombinasyonların toplam sayısını bulmak için CJ() işlevine istediğiniz kadar vektörün adını vermeniz yeterlidir.
Ek kaynaklar
Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
R’de gruba göre benzersiz değerler nasıl sayılır?
R’de bir veri çerçevesindeki tek satırlar nasıl seçilir
Dplyr kullanarak farklı değerler nasıl sayılır?