【发布时间】:2018-11-08 19:45:03
【问题描述】:
我正在尝试计算在特定时间运行的报告数量。
数据如下:
ReportID StartTime Duration
1 2018-11-02 13:00:00 240 seconds
2 2018-11-02 14:00:00 300 seconds
3 2018-11-02 14:01:15 300 seconds
4 2018-11-02 14:00:00 5000 seconds
理想的输出是:
Time #ReportsRunning
2018-11-01 13:00:00 0
2018-11-02 13:00:00 1
2018-11-02 14:00:00 2
2018-11-02 15:00:00 1
有没有办法做这样的事情?我正在考虑将列添加到我要检查的每个时间戳。但这会使桌子变得非常宽。
可重现形式的数据:
df1 <- data.frame(
ReportID = 1:4,
StartTime = as.POSIXct(c("2018-11-02 13:00:00", "2018-11-02 14:00:00",
"2018-11-02 14:01:15", "2018-11-02 14:00:00")),
Duration = as.difftime(c(240, 300, 300, 5000), units = "secs")
)
df2 <- data.frame(
Time = as.POSIXct(c("2018-11-01 13:00:00", "2018-11-02 13:00:00",
"2018-11-02 14:00:00", "2018-11-02 15:00:00"))
)
【问题讨论】:
-
欢迎来到 StackOverflow!下一次的小提示:以可重复的形式包含您的数据(就像我在上面所做的那样),您将更有可能得到答案。看看这里:stackoverflow.com/questions/5963269/…
-
另外,下午 2 点运行的报告数量是 2,而不是 3,对吧?我编辑了。
标签: r algorithm data-manipulation