我有一个数据集,可以捕获从多个客户端到服务器的大量网络请求的延迟:
request_timestamp latency
1 2014-12-08T12:22:53.344+0000 9
2 2014-12-08T12:22:53.328+0000 2
3 2014-12-08T12:23:54.254+0000 7
...
10 2014-12-08T12:24:12.749+0000 6
我希望能够执行一个箱形图,其中x轴是以分钟为单位的时间,例如
20141208T1222 20141208T1223 20141208T1224 ...
这些方框将在相应的分钟内汇总数据。
我相信我需要一个与此类似的功能:
tmp <- boxplot(latency ~ request_timestamp_minute, data=DF, plot=FALSE)
bxp(tmp, at=sort(unique(df$request_timestamp_minute)))
我还希望按不同的时间戳值进行汇总,例如小时,小时等等。
我怎样才能在R?
中这样做答案 0 :(得分:0)
这可以工作几小时,几分钟,一天等:
library("lubridate")
# make more margin space for x axis label
par.old <- par(mar=c(10,4,4,2))
# add a new field containing the request timestamp as a POSIXct type
DF$req_time <- as.POSIXct(strptime(DF$request_timestamp, "%Y-%m-%dT%H:%M:%S"))
# add a new field to store the hour interval
DF$req_time_hour <- round_date(DF$req_time, "hour")
# now do the plotting
tmp <- boxplot(latency ~ req_time_hour, data=DF, plot=FALSE)
bxp(tmp, log = "y", las=2, at=sort(unique(DF$req_time_hour)))
# reset the margins
par(par.old)
这是有助于提供此解决方案的博文的link。
我会另外提出一个关于四舍五入到其他时间增量的问题,例如四分之一小时。