Reputation: 233
My question is a little bit complicated. Here is a fraction of my data. The column of state means the state of vehicle inductive loop. "0" indicates unoccupied, "1" is occupied. "color" shows the traffic light status.
My goal is to analyse the relation between the time that vehicles stop in the detector and time of day, the color of light. It's a big problem for me.
So currently my problem is, how to calculate the length of time for every succesive "1" sequence? Then plot it as y-axis , x-axis is the start time of becoming"1". Thx for any help.
time state color
20394 2014-08-04 08:01:52.0 0 red
20395 2014-08-04 08:01:52.5 0 red
20396 2014-08-04 08:01:53.0 1 red
20397 2014-08-04 08:01:53.2 1 red
20398 2014-08-04 08:01:54.0 1 red
20399 2014-08-04 08:01:54.2 1 red
20400 2014-08-04 08:01:55.0 1 red
20401 2014-08-04 08:01:55.7 1 red
20402 2014-08-04 08:01:56.0 1 red
20403 2014-08-04 08:01:56.0 1 red
20404 2014-08-04 08:01:56.2 1 red
20405 2014-08-04 08:01:57.0 1 green
20406 2014-08-04 08:01:57.2 1 green
20407 2014-08-04 08:02:01.0 1 green
20408 2014-08-04 08:02:01.0 0 green
20409 2014-08-04 08:02:01.2 0 green
20410 2014-08-04 08:02:01.5 0 green
20411 2014-08-04 08:02:02.0 0 green
20412 2014-08-04 08:02:02.2 0 green
20413 2014-08-04 08:02:03.2 0 green
20414 2014-08-04 08:02:03.4 0 green
20415 2014-08-04 08:02:05.2 0 green
20416 2014-08-04 08:02:05.7 0 green
20417 2014-08-04 08:02:06.0 0 green
20418 2014-08-04 08:02:07.0 0 green
20419 2014-08-04 08:02:07.7 0 green
20420 2014-08-04 08:02:08.0 0 green
20421 2014-08-04 08:02:08.7 0 green
20422 2014-08-04 08:02:09.0 0 green
20423 2014-08-04 08:02:09.4 0 green
20424 2014-08-04 08:02:10.4 0 green
20425 2014-08-04 08:02:10.7 0 green
20426 2014-08-04 08:02:11.0 0 green
20427 2014-08-04 08:02:11.2 0 green
20428 2014-08-04 08:02:13.0 0 green
20429 2014-08-04 08:02:13.2 0 green
20430 2014-08-04 08:02:13.9 0 green
20431 2014-08-04 08:02:14.4 0 green
20432 2014-08-04 08:02:14.7 0 green
20433 2014-08-04 08:02:15.0 0 green
20434 2014-08-04 08:02:15.2 0 green
20435 2014-08-04 08:02:15.4 0 green
20436 2014-08-04 08:02:15.7 0 green
20437 2014-08-04 08:02:16.0 0 green
20438 2014-08-04 08:02:16.0 0 green
20439 2014-08-04 08:02:17.0 0 green
20440 2014-08-04 08:02:18.2 0 green
20441 2014-08-04 08:02:18.5 0 green
20442 2014-08-04 08:02:18.7 0 green
20443 2014-08-04 08:02:19.4 0 green
20444 2014-08-04 08:02:20.7 0 green
20445 2014-08-04 08:02:21.0 0 green
20446 2014-08-04 08:02:25.0 0 amber
20447 2014-08-04 08:02:25.0 0 amber
20448 2014-08-04 08:02:25.2 0 amber
20449 2014-08-04 08:02:25.9 0 green
20450 2014-08-04 08:02:26.0 0 amber
20451 2014-08-04 08:02:27.0 0 amber
20452 2014-08-04 08:02:28.0 0 red
20453 2014-08-04 08:02:30.0 0 red
20454 2014-08-04 08:02:30.0 0 red
20455 2014-08-04 08:02:30.2 0 red
20456 2014-08-04 08:02:31.0 0 red
20457 2014-08-04 08:02:31.0 0 red
20458 2014-08-04 08:02:31.2 0 red
20459 2014-08-04 08:02:32.0 0 red
20460 2014-08-04 08:02:32.0 0 red
20461 2014-08-04 08:02:32.2 0 red
20462 2014-08-04 08:02:33.0 0 red
20463 2014-08-04 08:02:34.0 0 red
20464 2014-08-04 08:02:34.2 0 red
20465 2014-08-04 08:02:34.9 0 red
20466 2014-08-04 08:02:35.7 0 red
20467 2014-08-04 08:02:36.0 0 red
20468 2014-08-04 08:02:37.0 0 red
20469 2014-08-04 08:02:37.5 0 red
20470 2014-08-04 08:02:37.5 0 red
20471 2014-08-04 08:02:37.7 0 red
20472 2014-08-04 08:02:38.0 0 red
20473 2014-08-04 08:02:38.5 0 red
20474 2014-08-04 08:02:39.0 0 red
20475 2014-08-04 08:02:39.5 0 red
20476 2014-08-04 08:02:40.0 0 red
20477 2014-08-04 08:02:40.7 0 red
20478 2014-08-04 08:02:40.9 0 red
20479 2014-08-04 08:02:41.0 0 red
20480 2014-08-04 08:02:41.2 0 red
20481 2014-08-04 08:02:41.4 0 red
20482 2014-08-04 08:02:42.2 0 red
20483 2014-08-04 08:02:42.7 0 red
20484 2014-08-04 08:02:44.0 0 red
20485 2014-08-04 08:02:44.7 0 red
20486 2014-08-04 08:02:44.9 0 red
20487 2014-08-04 08:02:46.0 0 red
20488 2014-08-04 08:02:47.0 0 red
20489 2014-08-04 08:02:48.0 0 red
20490 2014-08-04 08:02:49.5 0 red
20491 2014-08-04 08:02:49.7 0 red
20492 2014-08-04 08:02:50.4 0 red
20493 2014-08-04 08:02:51.0 0 red
20494 2014-08-04 08:02:52.0 0 red
20495 2014-08-04 08:02:52.7 0 red
20496 2014-08-04 08:02:53.7 0 red
20497 2014-08-04 08:02:55.4 0 red
20498 2014-08-04 08:02:55.5 0 red
20499 2014-08-04 08:02:56.0 0 red
20500 2014-08-04 08:02:57.0 0 red
20501 2014-08-04 08:02:57.2 0 red
20502 2014-08-04 08:02:57.7 0 red
20503 2014-08-04 08:02:57.7 0 red
20504 2014-08-04 08:02:58.7 0 red
20505 2014-08-04 08:03:00.4 0 red
20506 2014-08-04 08:03:00.7 0 red
20507 2014-08-04 08:03:01.0 0 red
20508 2014-08-04 08:03:02.0 0 red
20509 2014-08-04 08:03:06.0 0 red
20510 2014-08-04 08:03:07.2 0 red
20511 2014-08-04 08:03:07.7 0 red
20512 2014-08-04 08:03:08.4 0 red
20513 2014-08-04 08:03:08.5 0 red
20514 2014-08-04 08:03:08.7 1 red
20515 2014-08-04 08:03:09.4 1 red
20516 2014-08-04 08:03:09.9 1 red
20517 2014-08-04 08:03:10.0 1 red
20518 2014-08-04 08:03:10.9 1 red
20519 2014-08-04 08:03:11.0 1 red
20520 2014-08-04 08:03:11.4 1 red
20521 2014-08-04 08:03:11.5 1 red
20522 2014-08-04 08:03:11.5 1 red
20523 2014-08-04 08:03:12.0 1 red
20524 2014-08-04 08:03:12.2 1 red
20525 2014-08-04 08:03:12.5 1 red
20526 2014-08-04 08:03:13.2 1 red
20527 2014-08-04 08:03:13.2 1 red
20528 2014-08-04 08:03:13.4 1 red
20529 2014-08-04 08:03:14.2 1 red
20530 2014-08-04 08:03:14.4 1 red
20531 2014-08-04 08:03:14.9 1 red
20532 2014-08-04 08:03:15.2 1 red
20533 2014-08-04 08:03:16.0 1 red
20534 2014-08-04 08:03:16.5 1 red
20535 2014-08-04 08:03:19.2 1 red
20536 2014-08-04 08:03:19.4 1 red
20537 2014-08-04 08:03:19.5 1 red
20538 2014-08-04 08:03:19.7 1 red
20539 2014-08-04 08:03:22.0 1 red
20540 2014-08-04 08:03:22.2 1 red
20541 2014-08-04 08:03:22.7 1 red
20542 2014-08-04 08:03:23.2 1 red
20543 2014-08-04 08:03:23.4 1 red
20544 2014-08-04 08:03:23.7 1 red
20545 2014-08-04 08:03:24.2 1 red
20546 2014-08-04 08:03:25.2 1 red
20547 2014-08-04 08:03:26.2 1 red
20548 2014-08-04 08:03:26.2 1 red
20549 2014-08-04 08:03:26.4 1 red
20550 2014-08-04 08:03:26.5 1 red
20551 2014-08-04 08:03:27.0 1 red
20552 2014-08-04 08:03:27.2 1 green
20553 2014-08-04 08:03:27.5 1 green
20554 2014-08-04 08:03:28.0 1 green
20555 2014-08-04 08:03:28.2 0 green
20556 2014-08-04 08:03:28.5 0 green
20557 2014-08-04 08:03:30.0 0 green
20558 2014-08-04 08:03:30.5 0 green
20559 2014-08-04 08:03:30.5 0 green
20560 2014-08-04 08:03:31.5 0 green
20561 2014-08-04 08:03:33.0 0 green
20562 2014-08-04 08:03:33.4 0 green
20563 2014-08-04 08:03:33.5 1 green
20564 2014-08-04 08:03:33.9 1 green
20565 2014-08-04 08:03:34.5 1 green
20566 2014-08-04 08:03:34.9 1 green
20567 2014-08-04 08:03:35.4 0 green
20568 2014-08-04 08:03:36.5 0 green
20569 2014-08-04 08:03:37.4 0 green
20570 2014-08-04 08:03:37.5 0 green
20571 2014-08-04 08:03:39.0 0 green
20572 2014-08-04 08:03:42.0 0 green
20573 2014-08-04 08:03:45.0 0 green
20574 2014-08-04 08:03:45.0 0 green
20575 2014-08-04 08:03:48.0 0 green
20576 2014-08-04 08:03:48.2 0 green
Upvotes: 0
Views: 100
Reputation: 887148
Not sure about your expected result,
If dat
is the dataset:
indx <- cumsum(c(1,abs(diff(dat$state))))
indx1 <- !!dat$state
sapply(split(dat$time[indx1], indx[indx1]), function(x) {
time1 <- as.POSIXct(x, format="%Y-%m-%d %H:%M:%S")
c(max(time1)-min(time1))})
2 4 6
#8 20 1 #time in seconds
do.call(rbind,lapply(split(dat$time[indx1], indx[indx1]), function(x) {
time1 <- as.POSIXct(x, format="%Y-%m-%d %H:%M:%S")
data.frame(time=x[1], length=c(max(time1)-min(time1)))
}))
# time length
#2 2014-08-04 08:01:53.0 8
#4 2014-08-04 08:03:08.7 20
#6 2014-08-04 08:03:33.5 1
Upvotes: 2