Подмножественный кадр данных повторяющихся значений по максимальной дате - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть образец набора данных ниже:

df

      Date    Col1    Col2    Col3   Col4   Col5
2019-02-25       A       A       B      4      7
2019-02-26       A       A       B     10      9
2019-02-24       B       C       D      9     12
2019-02-23       J       M       L     19     18
2019-02-23       B       C       D     11     78

Как мне установить поднабор моего набора данных, чтобы при наличии дубликатов из df[,2:4] я оставлял только максимальную дату из этих дубликатов?Я все еще хочу, чтобы присутствовали уникальные значения из предыдущей таблицы.

Окончательный ожидаемый результат:

      Date    Col1    Col2    Col3   Col4   Col5
2019-02-26       A       A       B     10      9
2019-02-24       B       C       D      9     12
2019-02-23       J       M       L     19     18

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Встроенное решение, которое использует aggregate() in stats:

merge(df, aggregate(Date ~ Col1 + Col2 + Col3, df, max))
0 голосов
/ 25 февраля 2019

Мы можем использовать tidyverse.После группировки по столбцам с 2 по 4 slice строка на основе индекса max imum 'Дата'

library(dplyr)
df %>%
  group_by_at(2:4) %>% 
  slice(which.max(Date))

или с использованием base R

df[with(df, ave(Date, Col1, Col2, Col3, FUN = max) == Date),]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...