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?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir