如何从给定每个日期的峰值使用情况的数据帧中提取峰值日期时间?



我正在尝试确定给定每个服务器的最大(使用)列每天的峰值使用小时:

DATE    DATETIME           Server MACH Capacity Used
9/16/2016   9/16/2016 12:00 cpu1    A   22256   17939
9/16/2016   9/16/2016 13:00 cpu1    A   22256   12591
9/16/2016   9/16/2016 14:00 cpu1    A   22256   15834
9/16/2016   9/16/2016 15:00 cpu2    B   22256   14095
9/16/2016   9/16/2016 16:00 cpu2    B   22256   18186
9/16/2016   9/16/2016 17:00 cpu2    B   22256   12637

在这个数据框中,cpu1的日期为2016年9月16日,最大使用量为17939,发生在2016年9月16日12:00

我正在尝试使用数据。表包,可以选择最大使用如下:

df<-data.table(df)
df<-df[,peak_used:=max(Used), by=c("Server","DATE")]

我还需要提取高峰时间并创建一个新列作为高峰列,并在那里插入日期和时间?

任何想法我如何提取峰值DATETIME为最大用于该日期?

我们可以使用which.max获得最大行的索引,在按'Server', 'DATE'分组后,使用该索引对'DATETIME'进行子集,并通过分配(:=)值来创建'peaktime'

df[, peaktime := DATETIME[which.max(Used)], by = .(Server, DATE)]

如果我们同时需要'peakused'和'peaktime',则

df[, c("peakused", "peaktime") := {
       i1 <- which.max(Used)
      .(DATETIME[i1], Used[i1])},  by = .(Server, DATE)]

最新更新