Dplyr kullanarak gruba göre ilk satır nasıl seçilir


Genellikle R’deki dplyr paketini kullanarak her grubun ilk satırını seçmek isteyebilirsiniz. Bunu yapmak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 df %>%
  group_by (group_var) %>%
  arrange (values_var) %>%
  filter (row_number()== 1 )

Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.

Örnek: R’de ilk satırı gruba göre seçin

R’de aşağıdaki veri kümesine sahip olduğumuzu varsayalım:

 #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

Aşağıdaki kod, R’de ilk satırı gruba göre seçmek için dplyr paketinin nasıl kullanılacağını gösterir:

 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

Varsayılan olarak, düzenleme() değerleri artan düzende sıralar ancak biz değerleri kolaylıkla azalan düzende sıralayabiliriz:

 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

Her gruptaki n’inci satırı seçmek için bu kodu kolayca değiştirebileceğinizi unutmayın. Sadece row_number() == n değerini değiştirin.

Örneğin 2. satırı gruba göre seçmek istiyorsanız aşağıdaki sözdizimini kullanabilirsiniz:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== 2 )

Veya son satırı gruba göre seçmek için aşağıdaki sözdizimini kullanabilirsiniz:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== n() )

Ek kaynaklar

R’de çizgiler nasıl düzenlenir
R’de grup başına gözlemler nasıl sayılır?
R’de grup başına maksimum değer nasıl bulunur?

Yorum ekle

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