Як вибрати перші n значень за групою в r


Ви можете використовувати будь-який із наведених нижче методів, щоб вибрати перші N значень за групою в R:

Спосіб 1: виберіть перші N значень на групу (ігноруйте зв’язки)

 library (dplyr)

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

Спосіб 2: виберіть перші N значень за групою (включіть зв’язки)

 library (dplyr)

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

У наведених нижче прикладах показано, як використовувати кожен метод із таким кадром даних у 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

Приклад 1: вибрати перші N значень на групу (ігнорувати зв’язки)

Наступний код показує, як вибрати перші 2 рядки з найвищими значеннями балів, згруповані за командою:

 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

Результат містить два рядки з найвищими значеннями для кожної команди.

Зауважте, що для команди B фактично було три рядки, які отримали однакове найвище значення ( 25 ), але лише два рядки повертаються у вихідних даних.

Цей метод просто ігнорує посилання.

Приклад 2: виберіть перші N значень на групу (включаючи зв’язки)

Наступний код показує, як вибрати перші 2 рядки з найвищими значеннями балів, згруповані за командою:

 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

Результат містить два рядки з найвищими значеннями для кожної команди.

Зауважте, що для команди B три рядки були рівними для найвищого значення балів ( 25 ), тому цей метод включив ці три рядки в кінцевий результат.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в R:

Як вибрати рядки, де значення з’являється в будь-якому стовпці в R
Як вибрати певні стовпці в R
Як вибрати стовпці за індексом у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *