Как выбрать строки, в которых два столбца в одной строке имеют максимальные значения по группам

#r

#r

Вопрос:

У меня есть данные, состоящие из 4 столбцов (идентификатор, дата, x1 и x2). Для каждого идентификатора существует несколько строк с одинаковой датой. Мне нужно выбрать для каждого идентификатора и даты только одну строку, где x1 и x2 — максимальные значения (в одной строке).

Например, у меня есть это

 1 20-01-2020 10 15 
1 20-01-2020 10 16
1 20-01-2020 9 15
1 20-01-2020 11 16
  

и я хочу получить только

 1 20-01-2020 11 16
  

Ответ №1:

Используя dplyr :

 mydf %>%
  group_by(id, date) %>%
  filter(x1 == max(x1), x2 == max(x2)) %>%
  ungroup()