Cara memilih baris pertama berdasarkan grup menggunakan dplyr
Seringkali, Anda mungkin ingin memilih baris pertama setiap grup menggunakan paket dplyr di R. Anda dapat menggunakan sintaks dasar berikut untuk melakukan ini:
df %>% group_by (group_var) %>% arrange (values_var) %>% filter (row_number()== 1 )
Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.
Contoh: pilih baris pertama berdasarkan grup di R
Misalkan kita memiliki kumpulan data berikut di R:
#create dataset df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C' ), points=c(4, 9, 7, 7, 6, 13, 8, 8, 4, 17)) #view dataset df team points 1 to 4 2 to 9 3 to 7 4 B 7 5 B 6 6 B 13 7 C 8 8 C 8 9 C 4 10 C 17
Kode berikut menunjukkan cara menggunakan paket dplyr untuk memilih baris pertama berdasarkan grup di R:
library (dplyr) df %>% group_by (team) %>% arrange (points) %>% filter (row_number()== 1 ) # A tibble: 3 x 2 # Groups: team [3] team points 1 to 4 2 C 4 3 B 6
Secara default, arrange() mengurutkan nilai dalam urutan menaik tetapi kita dapat dengan mudah mengurutkan nilai dalam urutan menurun:
df %>% group_by (team) %>% arrange ( desc (dots)) %>% filter (row_number()== 1 ) # A tibble: 3 x 2 # Groups: team [3] team points 1 C 17 2 B 13 3 to 9
Perhatikan bahwa Anda dapat dengan mudah mengubah kode ini untuk memilih baris ke-n di setiap grup. Ubah saja row_number() == n .
Misalnya, jika Anda ingin memilih baris ke-2 berdasarkan grup, Anda dapat menggunakan sintaks berikut:
df %>% group_by (team) %>% arrange ( desc (dots)) %>% filter (row_number()== 2 )
Atau Anda dapat menggunakan sintaks berikut untuk memilih baris terakhir berdasarkan grup:
df %>% group_by (team) %>% arrange ( desc (dots)) %>% filter (row_number()== n() )
Sumber daya tambahan
Cara menyusun garis di R
Cara menghitung observasi per kelompok di R
Bagaimana menemukan nilai maksimum per grup di R