我们正在监视 3 个进程 A、B 和 C,它们始终处于 X、Y 或 Z 级。协议会记录进程何时更改级别。
df = read.csv(tc <- textConnection('Time1,Process1,Level1
2013-01-09 18:00:34,A,X
2013-01-09 18:00:34,B,Y
2013-01-09 18:00:34,C,X
2013-01-09 22:00:59,A,Z
2013-01-10 00:10:38,A,X
2013-01-10 18:38:35,B,Z
2013-01-11 05:03:11,A,Z
2013-01-11 11:09:10,C,Y
2013-01-11 12:01:18,A,Off
2013-01-11 12:01:18,B,Off
2013-01-11 12:01:18,C,Off
'),header=TRUE)
close.connection(tc)
df$Time1 = as.POSIXct(df$Time1)
监控于 2013-01-09 18:00:34 开始,并于 2013-01-11 12:01:18 关闭。在 2013-01-09 18:00:34 和 2013-01-09 22:00:59 之间,进程 A 处于 X 级,在 2013-01-09 22:00:59 和 2013-01-10 00:10 之间: 38 进程 A 处于 Z 级。
出于图表目的,我们希望将每个午夜的每个进程的最后一级和一级状态插入协议中:
2013-01-09 23:59:59,A,Z
2013-01-10 00:00:00,A,Z
2013-01-10 23:59:59,A,X
2013-01-11 00:00:00,A,X
2013-01-09 23:59:59,B,Y
2013-01-10 00:00:00,B,Y
2013-01-10 23:59:59,B,Z
2013-01-11 00:00:00,B,Z
2013-01-09 23:59:59,C,X
2013-01-10 00:00:00,C,X
2013-01-10 23:59:59,C,X
2013-01-11 00:00:00,C,X
可以假设在 23:59:59 和 00:00:00 之间日志中没有事件。最后,协议会在插入后按 Time1 排序(这个我们可以自己弄清楚)。非常感谢任何指导!