我有一个如下所示的数据框。如何获得一个消除日期重复的新数据框: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
答案 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
函数来创建没有重复的动物园系列。在该示例中,我们假设您想要所有重复项中的最后一个,但是我们可以对其他聚合使用mean
,median
,function(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)