消除R中数据框中的重复日期

时间:2018-07-12 16:02:19

标签: r date dataframe unique

我有一个如下所示的数据框。如何获得一个消除日期重复的新数据框:6/15/2018和6/28/2018,并且有一个只有唯一值的数据框

 Date        Hrs
6/14/2018   364.8
6/15/2018   372.6
6/15/2018   381.9
6/21/2018   383.3
6/22/2018   394.5
6/25/2018   411
6/28/2018   423.9
6/28/2018   424.9

2 个答案:

答案 0 :(得分:1)

假设您只想保留两个重复的第一行:

df <- df[!duplicated(df[c('date')]),]

df

##     date   hrs
##6/14/2018 364.8
##6/15/2018 372.6
##6/21/2018 383.3
##6/22/2018 394.5
##6/25/2018 411.0
##6/28/2018 423.9

答案 1 :(得分:0)

1)动物园您可以通过使用read.zoo并指定一个aggregate函数来创建没有重复的动物园系列。在该示例中,我们假设您想要所有重复项中的最后一个,但是我们可以对其他聚合使用meanmedianfunction(x) head(x, 1)或其他函数。

library(zoo) 
z <- read.zoo(DF, format = "%m/%d/%Y", aggregate = function(x) tail(x, 1))

现在plot(z)lattice::xyplot(z)ggplot2::autoplot(z)将其绘制,fortify.zoo(z)将其转换为数据帧,等等。

2)基础我们可以像这样在基础中使用aggregate

DF2 <- transform(DF, Date = as.Date(Date, "%m/%d/%Y"))
aggregate(Hrs ~ Date, DF2, function(x) tail(x, 1))

或者我们可以使用(1)中提到的任何聚合函数。

## Note

Lines <- " Date        Hrs
6/14/2018   364.8
6/15/2018   372.6
6/15/2018   381.9
6/21/2018   383.3
6/22/2018   394.5
6/25/2018   411
6/28/2018   423.9
6/28/2018   424.9"
DF <- read.table(text = Lines, header = TRUE)