【问题标题】:how do you subset a data frame that has multiple duplicate values in R [duplicate]你如何在 R [重复] 中对具有多个重复值的数据框进行子集化
【发布时间】:2015-01-26 04:01:25
【问题描述】:

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

输入(数据1)

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。任何想法如何做到这一点,删除重复次数且只包含最大值?

【问题讨论】:

    标签: r


    【解决方案1】:
    > 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
    

    【讨论】:

    • 如果有联系,这样的事情会有所帮助。 filter(group_by(mydf, Time), Server1 == max(Server1, na.rm = TRUE)) %>% distinct()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多