Bagaimana menemukan semua kombinasi unik dari dua vektor di r
Anda dapat menggunakan salah satu metode berikut untuk menemukan semua kombinasi unik elemen dua vektor di R:
Metode 1: Gunakan Tidyr
library (tidyr) #find unique combinations of elements from vector1 and vector2 crossing(vector1, vector2)
Metode 2: Gunakan data.tabel
library (data.table) #find unique combinations of elements from vector1 and vector2 CJ(vector1, vector2, unique= TRUE )
Contoh berikut menunjukkan cara menggunakan masing-masing metode ini dalam praktik.
Contoh 1: Menemukan kombinasi unik menggunakan Tidyr
Kode berikut menunjukkan cara menemukan semua kombinasi unik elemen antara dua vektor di R menggunakan fungsi crossover() dari paket 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
Hasilnya adalah bingkai data yang menampilkan semua kombinasi unik elemen antara dua vektor.
Kita dapat melihat ada 12 kombinasi unik.
Jika Anda hanya ingin mengetahui jumlah kombinasi unik, Anda dapat menggabungkan fungsi ini dengan fungsi 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
Perhatikan bahwa fungsi crossover() juga dapat digunakan dengan lebih dari dua vektor.
Cukup berikan nama vektor sebanyak yang Anda inginkan ke fungsi crossover() untuk menemukan jumlah total kombinasi unik.
Contoh 2: Temukan kombinasi unik menggunakan data.table
Kode berikut menunjukkan cara menemukan semua kombinasi unik elemen antara dua vektor di R menggunakan fungsi CJ() dari paket 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
Hasilnya adalah bingkai data yang menampilkan semua kombinasi unik elemen antara dua vektor.
Perhatikan bahwa hasil dari fungsi CJ() sesuai dengan hasil dari fungsi Crossing() .
Fungsi CJ() juga dapat digunakan dengan lebih dari dua vektor.
Cukup berikan nama vektor sebanyak yang Anda inginkan ke fungsi CJ() untuk menemukan jumlah total kombinasi unik.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara menghitung nilai unik berdasarkan grup di R
Cara memilih satu baris dalam bingkai data di R
Cara menghitung nilai yang berbeda menggunakan dplyr