Cara memilih n nilai pertama berdasarkan grup di r


Anda dapat menggunakan salah satu metode berikut untuk memilih nilai N teratas berdasarkan grup di R:

Metode 1: Pilih N nilai pertama per grup (abaikan ikatan)

 library (dplyr)

#select top 5 values by group
df %>% 
  arrange(desc(values_column)) %>% 
  group_by(group_column) %>%
  slice(1:5)

Metode 2: pilih N nilai pertama berdasarkan grup (termasuk ikatan)

 library (dplyr)

#select top 5 values by group
df %>%
  group_by(group_column) %>%
  top_n(5, values_column)

Contoh berikut menunjukkan cara menggunakan setiap metode dengan bingkai data berikut di R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12))

#view data frame
df

  team points rebounds
1 A 19 10
2 to 22 6
3 to 15 3
4 A NA 7
5 B 14 11
6 B 25 13
7 B 25 9
8 B 25 12

Contoh 1: pilih N nilai pertama per grup (abaikan ikatan)

Kode berikut menunjukkan cara memilih 2 baris pertama dengan nilai poin tertinggi, dikelompokkan berdasarkan tim:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>% 
  arrange(desc(points)) %>% 
  group_by(team) %>%
  slice(1:2)

# A tibble: 4 x 3
# Groups: team [2]
  team points rebounds
        
1 to 22 6
2 A 19 10
3 B 25 13
4 B 25 9

Hasilnya berisi dua baris dengan nilai poin tertinggi untuk masing-masing tim.

Perhatikan bahwa untuk Tim B, sebenarnya ada tiga baris yang terikat untuk mendapatkan nilai poin tertinggi ( 25 ), tetapi hanya dua baris yang dikembalikan dalam output.

Metode ini mengabaikan tautan.

Contoh 2: pilih N nilai pertama per grup (termasuk ikatan)

Kode berikut menunjukkan cara memilih 2 baris pertama dengan nilai poin tertinggi, dikelompokkan berdasarkan tim:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>%
  group_by(team) %>%
  top_n(2, dots)

# A tibble: 5 x 3
# Groups: team [2]
  team points rebounds
        
1 A 19 10
2 to 22 6
3 B 25 13
4 B 25 9
5 B 25 12

Hasilnya berisi dua baris dengan nilai poin tertinggi untuk masing-masing tim.

Perhatikan bahwa untuk Tim B, tiga garis diikat untuk nilai poin tertinggi ( 25 ), jadi metode ini memasukkan ketiga garis tersebut ke dalam hasil akhir.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di R:

Cara memilih baris di mana nilai muncul di kolom mana pun di R
Cara memilih kolom tertentu di R
Cara memilih kolom berdasarkan indeks di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *