Cara menghitung nilai yang berbeda menggunakan dplyr (dengan contoh)
Anda dapat menggunakan salah satu metode berikut untuk menghitung jumlah nilai berbeda dalam bingkai data R menggunakan fungsi n_distinct() dplyr :
Metode 1: Hitung nilai yang berbeda dalam sebuah kolom
n_distinct(df$column_name)
Metode 2: Hitung nilai berbeda di semua kolom
sapply(df, function (x) n_distinct(x))
Metode 3: Hitung nilai yang berbeda berdasarkan kelompok
df %>% group_by (grouping_column) %>% summarize (count_distinct = n_distinct(values_column))
Contoh berikut menunjukkan cara menggunakan masing-masing metode ini dalam praktik dengan kerangka data berikut:
library (dplyr)
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
points=c(6, 6, 8, 10, 9, 9, 12, 12),
assists=c(3, 6, 4, 2, 4, 5, 5, 9))
#view data frame
df
team points assists
1 to 6 3
2 to 6 6
3 to 8 4
4 to 10 2
5 B 9 4
6 B 9 5
7 B 12 5
8 B 12 9
Metode 1: Hitung nilai yang berbeda dalam sebuah kolom
Kode berikut menunjukkan cara menggunakan n_distinct() untuk menghitung jumlah nilai berbeda di kolom ‘tim’:
#count distinct values in 'team' column
n_distinct(df$team)
[1] 2
Ada 2 nilai berbeda pada kolom ‘tim’.
Metode 2: Hitung nilai berbeda di semua kolom
Kode berikut menunjukkan cara menggunakan fungsi sapply() dan n_distinct() untuk menghitung jumlah nilai berbeda di setiap kolom bingkai data:
#count distinct values in every column
sapply(df, function (x) n_distinct(x))
team points assists
2 5 6
Dari hasilnya kita dapat melihat:
- Ada 2 nilai berbeda pada kolom ‘tim’
- Ada 5 nilai berbeda di kolom “poin”.
- Ada 6 nilai berbeda di kolom “bantuan”.
Metode 3: Hitung nilai yang berbeda berdasarkan kelompok
Kode berikut menunjukkan cara menggunakan fungsi n_distinct() untuk menghitung jumlah nilai berbeda per grup:
#count distinct 'points' values by 'team'
df %>%
group_by (team) %>%
summarize (distinct_points = n_distinct(points))
# A tibble: 2 x 2
team distinct_points
1 to 3
2 B 2
Dari hasilnya kita dapat melihat:
- Ada 3 nilai poin berbeda untuk Tim A.
- Ada 2 nilai poin terpisah untuk Tim B.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya menggunakan dplyr:
Cara mengkode ulang nilai menggunakan dplyr
Bagaimana cara mengganti NA dengan Zero di dplyr
Cara mengurutkan variabel berdasarkan kelompok menggunakan dplyr
Cara memilih baris pertama berdasarkan grup menggunakan dplyr