如何基于R中的最大日期从数据集中删除重复记录?

时间:2018-10-22 14:48:03

标签: r

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 :(得分:0)

这可以通过多种方式完成,这是使用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相同。