R'de grup başına maksimum değer nasıl bulunur?
Genellikle R’deki bir veri çerçevesinde her grubun maksimum değerini bulmak isteyebilirsiniz. Neyse ki bunu dplyr paketindeki işlevleri kullanarak yapmak kolaydır.
Bu eğitimde aşağıdaki veri çerçevesini kullanarak bunun nasıl yapılacağı açıklanmaktadır:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 34, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 34 6 BG 34 7 BF 39
Örnek 1: Grup başına maksimum değeri bulun
Aşağıdaki kod, pozisyon ve takım başına maksimum değerin nasıl bulunacağını gösterir:
library(dplyr) #find max value by team and position df %>% group_by (team, position) %>% summarize (max = max(points, na.rm= TRUE )) # A tibble: 4 x 3 # Groups: team [?] team position max 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
Örnek 2: Grup başına maksimum değeri içeren satırları döndürme
Aşağıdaki kod, takım ve pozisyon başına maksimum değeri içeren satırların nasıl döndürüleceğini gösterir:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% filter (points == max(points, na.rm= TRUE )) # A tibble: 5 x 3 # Groups: team, position [4] team position points 1 AG 12.0 2AF 19.0 3 BG 34.0 4 BG 34.0 5BF 39.0
Örnek 3: Grup başına maksimum değeri içeren tek bir satır döndürün
Önceki örnekte, A takımında maksimum puana sahip olan ve her ikisi de G konumunda olan iki oyuncu vardı. Yalnızca maksimum değere sahip ilk oyuncuyu bir gruba geri döndürmek istiyorsanız dilim( ) işlev. aşağıdaki gibi çalıştırın:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% slice (which.max(points)) # A tibble: 4 x 3 # Groups: team, position [4] team position points 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
Ek kaynaklar
Tam Kılavuz: R’de Veriler Nasıl Gruplandırılır ve Özetlenir
R’deki satırlar nasıl filtrelenir
R’de yinelenen satırlar nasıl kaldırılır