Как удалить дубликаты записей из набора данных на основе максимальной даты в R? - PullRequest
0 голосов
/ 22 октября 2018
Name    Date of Birth
Nitin   25-09-1991
Akash   25-09-1992
Nitin   25-09-1993
Nitin   25-09-1994
Nitin   25-09-1995
Nitin   25-09-1996
Rohit   25-09-1997
Akash   25-09-1998
Nitin   25-09-1999
Akash   25-09-2000
Rohit   25-09-2001

Я хочу найти только уникальное имя с максимальной датой.

1 Ответ

0 голосов
/ 22 октября 2018

Это можно сделать разными способами, вот один из них, использующий aggregate.

Сначала приведите ваши даты в класс "Date".

dat $Date.of.Birth <- as.Date(dat$Date.of.Birth, "%d-%m-%Y")

Теперь aggregate даты на Name и сохраните только максимумы.

aggregate(Date.of.Birth ~Name, dat, function(x) x[which.max(x)])
#   Name Date.of.Birth
#1 Akash    2000-09-25
#2 Nitin    1999-09-25
#3 Rohit    2001-09-25

Данные.

dat <- read.table(text = "
Name    'Date of Birth'
Nitin   25-09-1991
Akash   25-09-1992
Nitin   25-09-1993
Nitin   25-09-1994
Nitin   25-09-1995
Nitin   25-09-1996
Rohit   25-09-1997
Akash   25-09-1998
Nitin   25-09-1999
Akash   25-09-2000
Rohit   25-09-2001
", header = TRUE)

Обратите внимание, что read.table заменяет пробелы в имени второго столбца точками.Вы можете заставить read.table оставить имена столбцов такими, как они есть в аргументе check.names = FALSE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...