如何在R中对具有多个重复值的数据帧进行子集化

时间:2015-01-26 04:01:25

标签: r

我有一个名为data1的数据框:

dput(DATA1)

structure(list(Time = structure(c(1421561100, 1421561100, 1421564700, 
1421564700, 1421568300, 1421568300, 1421571900), class = c("POSIXct", 
"POSIXt"), tzone = "America/New_York"), Server1 = c(0.75, 1, 
0.82, 1, 0.75, 1.08, 0.92)), .Names = c("Time", "Server1"), row.names = c(1L, 
13L, 2L, 14L, 3L, 15L, 4L), class = "data.frame")

正如您在同一时间段所看到的,我有多个数据点。我需要修改此数据框并仅包含同一时间段的最大值。

例如,对于时间段(" 2015-01-18 01:05:00"),我看到0.75和1.00,我需要在那段时间内仅包括1.00。任何想法如何可以这样做,删除重复的时间,只包括最大值?

1 个答案:

答案 0 :(得分:3)

> require(dplyr)
> data1 %>% group_by(Time) %>% filter(Server1 == max(Server1))
Source: local data frame [4 x 2]
Groups: Time

                 Time Server1
1 2015-01-18 01:05:00    1.00
2 2015-01-18 02:05:00    1.00
3 2015-01-18 03:05:00    1.08
4 2015-01-18 04:05:00    0.92