I am trying to write a script that can calculate the average duration of behavioural events. Ideally something that will calculate for all my behavioural classes and if possible calculate standard error as well.
My data is as bellow
29/10/2015 6:09:38 9 Low.energy.swimming
29/10/2015 6:09:39 9 Low.energy.swimming
29/10/2015 6:09:40 9 Low.energy.swimming
29/10/2015 6:09:41 9 Low.energy.swimming
29/10/2015 6:09:42 9 Low.energy.swimming
29/10/2015 6:09:43 9 Low.energy.swimming
29/10/2015 6:09:44 9 Travel
29/10/2015 6:09:45 9 Travel
29/10/2015 6:09:46 9 Travel
29/10/2015 6:09:47 9 Travel
29/10/2015 6:09:48 9 Travel
29/10/2015 6:09:49 9 Travel
29/10/2015 6:09:50 9 Travel
29/10/2015 6:09:51 9 Travel
29/10/2015 6:09:52 9 Low.energy.swimming
29/10/2015 6:09:53 9 Low.energy.swimming
29/10/2015 6:09:54 9 Low.energy.swimming
29/10/2015 6:09:55 9 Low.energy.swimming
29/10/2015 6:09:56 9 Low.energy.swimming
29/10/2015 6:09:57 9 Low.energy.swimming
29/10/2015 6:09:58 9 Low.energy.swimming
29/10/2015 6:09:59 9 Low.energy.swimming
29/10/2015 6:10:00 9 Low.energy.swimming
29/10/2015 6:10:01 9 Low.energy.swimming
29/10/2015 6:10:02 9 Low.energy.swimming
29/10/2015 6:10:03 9 Low.energy.swimming
29/10/2015 6:10:04 9 Low.energy.swimming
29/10/2015 6:10:05 9 Low.energy.swimming
29/10/2015 6:10:06 9 Low.energy.swimming
29/10/2015 6:10:07 9 Low.energy.swimming
29/10/2015 6:10:08 9 Low.energy.swimming
29/10/2015 6:10:09 9 Low.energy.swimming
29/10/2015 6:10:10 9 Low.energy.swimming
29/10/2015 6:10:11 9 Low.energy.swimming
29/10/2015 6:10:12 9 Low.energy.swimming
29/10/2015 6:10:13 9 Low.energy.swimming
29/10/2015 6:10:14 9 Low.energy.swimming
29/10/2015 6:10:15 9 Low.energy.swimming
29/10/2015 6:10:16 9 Low.energy.swimming
29/10/2015 6:10:17 9 Low.energy.swimming
29/10/2015 6:10:18 9 Low.energy.swimming
29/10/2015 6:10:19 9 Low.energy.swimming
29/10/2015 6:10:20 9 Low.energy.swimming
29/10/2015 6:10:21 9 Low.energy.swimming
29/10/2015 6:10:22 9 Low.energy.swimming
29/10/2015 6:10:23 9 Low.energy.swimming
29/10/2015 6:10:24 9 Low.energy.swimming
29/10/2015 6:10:25 9 Low.energy.swimming
29/10/2015 6:10:26 9 Low.energy.swimming
29/10/2015 6:10:27 9 Low.energy.swimming
29/10/2015 6:10:28 9 Low.energy.swimming
29/10/2015 6:10:29 9 Low.energy.swimming
29/10/2015 6:10:30 9 Low.energy.swimming
29/10/2015 6:10:31 9 Low.energy.swimming
29/10/2015 6:10:32 9 Low.energy.swimming
29/10/2015 6:10:33 9 Low.energy.swimming
29/10/2015 6:10:34 9 Low.energy.swimming
29/10/2015 6:10:35 9 Low.energy.swimming
29/10/2015 6:10:36 9 Low.energy.swimming
29/10/2015 6:10:37 9 Low.energy.swimming
29/10/2015 6:10:38 9 Burst
29/10/2015 6:10:39 9 Burst
29/10/2015 6:10:40 9 Burst
29/10/2015 6:10:41 9 Burst
29/10/2015 6:10:42 9 Burst
29/10/2015 6:10:43 9 Low.energy.swimming
29/10/2015 6:10:44 9 Low.energy.swimming
29/10/2015 6:10:45 9 Low.energy.swimming
29/10/2015 6:10:46 9 Low.energy.swimming
29/10/2015 6:10:47 9 Low.energy.swimming
29/10/2015 6:10:48 9 Low.energy.swimming
29/10/2015 6:10:49 9 Low.energy.swimming
29/10/2015 6:10:50 9 Low.energy.swimming
29/10/2015 6:10:51 9 Low.energy.swimming
29/10/2015 6:10:52 9 Low.energy.swimming
29/10/2015 6:10:53 9 Low.energy.swimming
29/10/2015 6:10:54 9 Low.energy.swimming
29/10/2015 6:10:55 9 Low.energy.swimming
29/10/2015 6:10:56 9 Low.energy.swimming
29/10/2015 6:10:57 9 Low.energy.swimming
29/10/2015 6:10:58 9 Low.energy.swimming
29/10/2015 6:10:59 9 Low.energy.swimming
29/10/2015 6:11:00 9 Low.energy.swimming
29/10/2015 6:11:01 9 Low.energy.swimming
29/10/2015 6:11:02 9 Low.energy.swimming
29/10/2015 6:11:03 9 Low.energy.swimming
29/10/2015 6:11:04 9 Low.energy.swimming
29/10/2015 6:11:05 9 Low.energy.swimming
29/10/2015 6:11:06 9 Low.energy.swimming
29/10/2015 6:11:07 9 Low.energy.swimming
29/10/2015 6:11:08 9 Low.energy.swimming
29/10/2015 6:11:09 9 Low.energy.swimming
29/10/2015 6:11:10 9 Low.energy.swimming
29/10/2015 6:11:11 9 Low.energy.swimming
29/10/2015 6:11:12 9 Low.energy.swimming
29/10/2015 6:11:13 9 Low.energy.swimming
29/10/2015 6:11:14 9 Low.energy.swimming
29/10/2015 6:11:15 9 Low.energy.swimming
29/10/2015 6:11:16 9 Low.energy.swimming
29/10/2015 6:11:17 9 Low.energy.swimming
29/10/2015 6:11:18 9 Low.energy.swimming
29/10/2015 6:11:19 9 Low.energy.swimming
29/10/2015 6:11:20 9 Low.energy.swimming
29/10/2015 6:11:21 9 Low.energy.swimming
29/10/2015 6:11:22 9 Low.energy.swimming
29/10/2015 6:11:23 9 Low.energy.swimming
29/10/2015 6:11:24 9 Low.energy.swimming
29/10/2015 6:11:25 9 Low.energy.swimming
29/10/2015 6:11:26 9 Low.energy.swimming
29/10/2015 6:11:27 9 Low.energy.swimming
29/10/2015 6:11:28 9 Low.energy.swimming
29/10/2015 6:11:29 9 Low.energy.swimming
29/10/2015 6:11:30 9 Low.energy.swimming
29/10/2015 6:11:31 9 Low.energy.swimming
29/10/2015 6:11:32 9 Low.energy.swimming
29/10/2015 6:11:33 9 Low.energy.swimming
29/10/2015 6:11:34 9 Low.energy.swimming
29/10/2015 6:11:35 9 Low.energy.swimming
29/10/2015 6:11:36 9 Low.energy.swimming
29/10/2015 6:11:37 9 Low.energy.swimming
29/10/2015 6:11:38 9 Low.energy.swimming
29/10/2015 6:11:39 9 Low.energy.swimming
29/10/2015 6:11:40 9 Low.energy.swimming
29/10/2015 6:11:41 9 Low.energy.swimming
29/10/2015 6:11:42 9 Low.energy.swimming
29/10/2015 6:11:43 9 Low.energy.swimming
29/10/2015 6:11:44 9 Low.energy.swimming
29/10/2015 6:11:45 9 Low.energy.swimming
29/10/2015 6:11:46 9 Low.energy.swimming
29/10/2015 6:11:47 9 Low.energy.swimming
29/10/2015 6:11:48 9 Low.energy.swimming
29/10/2015 6:11:49 9 Low.energy.swimming
29/10/2015 6:11:50 9 Low.energy.swimming
29/10/2015 6:11:51 9 Low.energy.swimming
29/10/2015 6:11:52 9 Low.energy.swimming
29/10/2015 6:11:53 9 Low.energy.swimming
29/10/2015 6:11:54 9 Low.energy.swimming
29/10/2015 6:11:55 9 Low.energy.swimming
29/10/2015 6:11:56 9 Low.energy.swimming
29/10/2015 6:11:57 9 Low.energy.swimming
29/10/2015 6:11:58 9 Low.energy.swimming
29/10/2015 6:11:59 9 Low.energy.swimming
29/10/2015 6:12:00 9 Low.energy.swimming
29/10/2015 6:12:01 9 Low.energy.swimming
29/10/2015 6:12:02 9 Low.energy.swimming
29/10/2015 6:12:03 9 Low.energy.swimming
29/10/2015 6:12:04 9 Low.energy.swimming
29/10/2015 6:12:05 9 Low.energy.swimming
29/10/2015 6:12:06 9 Low.energy.swimming
29/10/2015 6:12:07 9 Low.energy.swimming
29/10/2015 6:12:08 9 Low.energy.swimming
29/10/2015 6:12:09 9 Low.energy.swimming
29/10/2015 6:12:10 9 Low.energy.swimming
29/10/2015 6:12:11 9 Low.energy.swimming
29/10/2015 6:12:12 9 Low.energy.swimming
29/10/2015 6:12:13 9 Low.energy.swimming
29/10/2015 6:12:14 9 Low.energy.swimming
29/10/2015 6:12:15 9 Low.energy.swimming
29/10/2015 6:12:16 9 Low.energy.swimming
29/10/2015 6:12:17 9 Low.energy.swimming
29/10/2015 6:12:18 9 Low.energy.swimming
29/10/2015 6:12:19 9 Low.energy.swimming
29/10/2015 6:12:20 9 Low.energy.swimming
29/10/2015 6:12:21 9 Low.energy.swimming
29/10/2015 6:12:22 9 Low.energy.swimming
29/10/2015 6:12:23 9 Low.energy.swimming
29/10/2015 6:12:24 9 Low.energy.swimming
29/10/2015 6:12:25 9 Low.energy.swimming
29/10/2015 6:12:26 9 Low.energy.swimming
29/10/2015 6:12:27 9 Low.energy.swimming
29/10/2015 6:12:28 9 Low.energy.swimming
29/10/2015 6:12:29 9 Low.energy.swimming
29/10/2015 6:12:30 9 Low.energy.swimming
29/10/2015 6:12:31 9 Low.energy.swimming
29/10/2015 6:12:32 9 Low.energy.swimming
29/10/2015 6:12:33 9 Low.energy.swimming
29/10/2015 6:12:34 9 Low.energy.swimming
29/10/2015 6:12:35 9 Low.energy.swimming
29/10/2015 6:12:36 9 Low.energy.swimming
29/10/2015 6:12:37 9 Low.energy.swimming
29/10/2015 6:12:38 9 Low.energy.swimming
29/10/2015 6:12:39 9 Low.energy.swimming
29/10/2015 6:12:40 9 Low.energy.swimming
29/10/2015 6:12:41 9 Low.energy.swimming
29/10/2015 6:12:42 9 Low.energy.swimming
29/10/2015 6:12:43 9 Low.energy.swimming
29/10/2015 6:12:44 9 Low.energy.swimming
29/10/2015 6:12:45 9 Low.energy.swimming
29/10/2015 6:12:46 9 Low.energy.swimming
29/10/2015 6:12:47 9 Low.energy.swimming
29/10/2015 6:12:48 9 Low.energy.swimming
29/10/2015 6:12:49 9 Low.energy.swimming
29/10/2015 6:12:50 9 Low.energy.swimming
29/10/2015 6:12:51 9 Low.energy.swimming
29/10/2015 6:12:52 9 Low.energy.swimming
29/10/2015 6:12:53 9 Low.energy.swimming
29/10/2015 6:12:54 9 Low.energy.swimming
29/10/2015 6:12:55 9 Low.energy.swimming
29/10/2015 6:12:56 9 Low.energy.swimming
29/10/2015 6:12:57 9 Low.energy.swimming
29/10/2015 6:12:58 9 Low.energy.swimming
29/10/2015 6:12:59 9 Low.energy.swimming
29/10/2015 6:13:00 9 Low.energy.swimming
29/10/2015 6:13:01 9 Low.energy.swimming
29/10/2015 6:13:02 9 Low.energy.swimming
29/10/2015 6:13:03 9 Low.energy.swimming
29/10/2015 6:13:04 9 Low.energy.swimming
29/10/2015 6:13:05 9 Low.energy.swimming
29/10/2015 6:13:06 9 Low.energy.swimming
29/10/2015 6:13:07 9 Low.energy.swimming
29/10/2015 6:13:08 9 Low.energy.swimming
29/10/2015 6:13:09 9 Low.energy.swimming
29/10/2015 6:13:10 9 Low.energy.swimming
29/10/2015 6:13:11 9 Low.energy.swimming
29/10/2015 6:13:12 9 Low.energy.swimming
29/10/2015 6:13:13 9 Low.energy.swimming
29/10/2015 6:13:14 9 Low.energy.swimming
29/10/2015 6:13:15 9 Low.energy.swimming
29/10/2015 6:13:16 9 Low.energy.swimming
29/10/2015 6:13:17 9 Low.energy.swimming
29/10/2015 6:13:18 9 Low.energy.swimming
29/10/2015 6:13:19 9 Low.energy.swimming
29/10/2015 6:13:20 9 Low.energy.swimming
29/10/2015 6:13:21 9 Low.energy.swimming
29/10/2015 6:13:22 9 Low.energy.swimming
29/10/2015 6:13:23 9 Low.energy.swimming
29/10/2015 6:13:24 9 Low.energy.swimming
29/10/2015 6:13:25 9 Low.energy.swimming
29/10/2015 6:13:26 9 Low.energy.swimming
29/10/2015 6:13:27 9 Low.energy.swimming
29/10/2015 6:13:28 9 Low.energy.swimming
29/10/2015 6:13:29 9 Low.energy.swimming
29/10/2015 6:13:30 9 Low.energy.swimming
29/10/2015 6:13:31 9 Low.energy.swimming
29/10/2015 6:13:32 9 Low.energy.swimming
29/10/2015 6:13:33 9 Low.energy.swimming
29/10/2015 6:13:34 9 Low.energy.swimming
29/10/2015 6:13:35 9 Low.energy.swimming
29/10/2015 6:13:36 9 Low.energy.swimming
29/10/2015 6:13:37 9 Low.energy.swimming
29/10/2015 6:13:38 9 Low.energy.swimming
29/10/2015 6:13:39 9 Low.energy.swimming
29/10/2015 6:13:40 9 Low.energy.swimming
29/10/2015 6:13:41 9 Low.energy.swimming
29/10/2015 6:13:42 9 Low.energy.swimming
29/10/2015 6:13:43 9 Low.energy.swimming
29/10/2015 6:13:44 9 Low.energy.swimming
29/10/2015 6:13:45 9 Low.energy.swimming
29/10/2015 6:13:46 9 Low.energy.swimming
29/10/2015 6:13:47 9 Low.energy.swimming
29/10/2015 6:13:48 9 Low.energy.swimming
29/10/2015 6:13:49 9 Low.energy.swimming
29/10/2015 6:13:50 9 Low.energy.swimming
29/10/2015 6:13:51 9 Low.energy.swimming
29/10/2015 6:13:52 9 Low.energy.swimming
29/10/2015 6:13:53 9 Low.energy.swimming
29/10/2015 6:13:54 9 Low.energy.swimming
29/10/2015 6:13:55 9 Low.energy.swimming
29/10/2015 6:13:56 9 Low.energy.swimming
29/10/2015 6:13:57 9 Low.energy.swimming
29/10/2015 6:13:58 9 Low.energy.swimming
29/10/2015 6:13:59 9 Low.energy.swimming
29/10/2015 6:14:00 9 Low.energy.swimming
29/10/2015 6:14:01 9 Low.energy.swimming
29/10/2015 6:14:02 9 Low.energy.swimming
29/10/2015 6:14:03 9 Low.energy.swimming
29/10/2015 6:14:04 9 Low.energy.swimming
29/10/2015 6:14:05 9 Low.energy.swimming
29/10/2015 6:14:06 9 Low.energy.swimming
29/10/2015 6:14:07 9 Low.energy.swimming
29/10/2015 6:14:08 9 Low.energy.swimming
29/10/2015 6:14:09 9 Low.energy.swimming
29/10/2015 6:14:10 9 Low.energy.swimming
29/10/2015 6:14:11 9 Low.energy.swimming
29/10/2015 6:14:12 9 Low.energy.swimming
29/10/2015 6:14:13 9 Low.energy.swimming
29/10/2015 6:14:14 9 Low.energy.swimming
29/10/2015 6:14:15 9 Low.energy.swimming
29/10/2015 6:14:16 9 Low.energy.swimming
29/10/2015 6:14:17 9 Low.energy.swimming
29/10/2015 6:14:18 9 Low.energy.swimming
29/10/2015 6:14:19 9 Low.energy.swimming
29/10/2015 6:14:20 9 Low.energy.swimming
29/10/2015 6:14:21 9 Low.energy.swimming
29/10/2015 6:14:22 9 Low.energy.swimming
29/10/2015 6:14:23 9 Low.energy.swimming
29/10/2015 6:14:24 9 Low.energy.swimming
29/10/2015 6:14:25 9 Low.energy.swimming
29/10/2015 6:14:26 9 Low.energy.swimming
29/10/2015 6:14:27 9 Low.energy.swimming
29/10/2015 6:14:28 9 Low.energy.swimming
29/10/2015 6:14:29 9 Low.energy.swimming
29/10/2015 6:14:30 9 Low.energy.swimming
29/10/2015 6:14:31 9 Low.energy.swimming
29/10/2015 6:14:32 9 Low.energy.swimming
29/10/2015 6:14:33 9 Low.energy.swimming
29/10/2015 6:14:34 9 Burst
29/10/2015 6:14:35 9 Burst
29/10/2015 6:14:36 9 Burst
29/10/2015 6:14:37 9 Burst
29/10/2015 6:14:38 9 Burst
29/10/2015 6:14:39 9 Burst
29/10/2015 6:14:40 9 Low.energy.swimming
29/10/2015 6:14:41 9 Low.energy.swimming
29/10/2015 6:14:42 9 Low.energy.swimming
29/10/2015 6:14:43 9 Low.energy.swimming
29/10/2015 6:14:44 9 Low.energy.swimming
29/10/2015 6:14:45 9 Low.energy.swimming
29/10/2015 6:14:46 9 Low.energy.swimming
29/10/2015 6:14:47 9 Low.energy.swimming
29/10/2015 6:14:48 9 Low.energy.swimming
29/10/2015 6:14:49 9 Low.energy.swimming
29/10/2015 6:14:50 9 Low.energy.swimming
29/10/2015 6:14:51 9 Low.energy.swimming
29/10/2015 6:14:52 9 Low.energy.swimming
29/10/2015 6:14:53 9 Low.energy.swimming
29/10/2015 6:14:54 9 Low.energy.swimming
29/10/2015 6:14:55 9 Low.energy.swimming
29/10/2015 6:14:56 9 Low.energy.swimming
29/10/2015 6:14:57 9 Low.energy.swimming
29/10/2015 6:14:58 9 Low.energy.swimming
29/10/2015 6:14:59 9 Low.energy.swimming
29/10/2015 6:15:00 9 Low.energy.swimming
29/10/2015 6:15:01 9 Low.energy.swimming
29/10/2015 6:15:02 9 Low.energy.swimming
29/10/2015 6:15:03 9 Low.energy.swimming
29/10/2015 6:15:04 9 Low.energy.swimming
29/10/2015 6:15:05 9 Low.energy.swimming
29/10/2015 6:15:06 9 Low.energy.swimming
29/10/2015 6:15:07 9 Low.energy.swimming
29/10/2015 6:15:08 9 Low.energy.swimming
29/10/2015 6:15:09 9 Low.energy.swimming
29/10/2015 6:15:10 9 Low.energy.swimming
29/10/2015 6:15:11 9 Low.energy.swimming
29/10/2015 6:15:12 9 Low.energy.swimming
29/10/2015 6:15:13 9 Low.energy.swimming
29/10/2015 6:15:14 9 Low.energy.swimming
29/10/2015 6:15:15 9 Low.energy.swimming
29/10/2015 6:15:16 9 Low.energy.swimming
29/10/2015 6:15:17 9 Low.energy.swimming
29/10/2015 6:15:18 9 Low.energy.swimming
29/10/2015 6:15:19 9 Low.energy.swimming
29/10/2015 6:15:20 9 Low.energy.swimming
29/10/2015 6:15:21 9 Low.energy.swimming
29/10/2015 6:15:22 9 Low.energy.swimming
29/10/2015 6:15:23 9 Low.energy.swimming
29/10/2015 6:15:24 9 Low.energy.swimming
29/10/2015 6:15:25 9 Low.energy.swimming
29/10/2015 6:15:26 9 Low.energy.swimming
29/10/2015 6:15:27 9 Low.energy.swimming
29/10/2015 6:15:28 9 Low.energy.swimming
29/10/2015 6:15:29 9 Low.energy.swimming
29/10/2015 6:15:30 9 Low.energy.swimming
29/10/2015 6:15:31 9 Low.energy.swimming
29/10/2015 6:15:32 9 Low.energy.swimming
29/10/2015 6:15:33 9 Low.energy.swimming
29/10/2015 6:15:34 9 Low.energy.swimming
29/10/2015 6:15:35 9 Low.energy.swimming
29/10/2015 6:15:36 9 Low.energy.swimming
29/10/2015 6:15:37 9 Low.energy.swimming
29/10/2015 6:15:38 9 Low.energy.swimming
29/10/2015 6:15:39 9 Low.energy.swimming
29/10/2015 6:15:40 9 Low.energy.swimming
29/10/2015 6:15:41 9 Low.energy.swimming
29/10/2015 6:15:42 9 Low.energy.swimming
29/10/2015 6:15:43 9 Low.energy.swimming
29/10/2015 6:15:44 9 Low.energy.swimming
29/10/2015 6:15:45 9 Low.energy.swimming
29/10/2015 6:15:46 9 Travel
29/10/2015 6:15:47 9 Travel
29/10/2015 6:15:48 9 Travel
29/10/2015 6:15:49 9 Travel
29/10/2015 6:15:50 9 Travel
29/10/2015 6:15:51 9 Low.energy.swimming
29/10/2015 6:15:52 9 Low.energy.swimming
29/10/2015 6:15:53 9 Low.energy.swimming
29/10/2015 6:15:54 9 Low.energy.swimming
29/10/2015 6:15:55 9 Low.energy.swimming
29/10/2015 6:15:56 9 Low.energy.swimming
29/10/2015 6:15:57 9 Low.energy.swimming
29/10/2015 6:15:58 9 Low.energy.swimming
29/10/2015 6:15:59 9 Low.energy.swimming
29/10/2015 6:16:00 9 Low.energy.swimming
29/10/2015 6:16:01 9 Low.energy.swimming
29/10/2015 6:16:02 9 Low.energy.swimming
29/10/2015 6:16:03 9 Low.energy.swimming
29/10/2015 6:16:04 9 Low.energy.swimming
29/10/2015 6:16:05 9 Low.energy.swimming
29/10/2015 6:16:06 9 Low.energy.swimming
29/10/2015 6:16:07 9 Low.energy.swimming
29/10/2015 6:16:08 9 Low.energy.swimming
29/10/2015 6:16:09 9 Low.energy.swimming
29/10/2015 6:16:10 9 Low.energy.swimming
29/10/2015 6:16:11 9 Low.energy.swimming
29/10/2015 6:16:12 9 Low.energy.swimming
29/10/2015 6:16:13 9 Low.energy.swimming
29/10/2015 6:16:14 9 Low.energy.swimming
29/10/2015 6:16:15 9 Low.energy.swimming
29/10/2015 6:16:16 9 Low.energy.swimming
29/10/2015 6:16:17 9 Low.energy.swimming
29/10/2015 6:16:18 9 Low.energy.swimming
29/10/2015 6:16:19 9 Low.energy.swimming
29/10/2015 6:16:20 9 Low.energy.swimming
29/10/2015 6:16:21 9 Low.energy.swimming
29/10/2015 6:16:22 9 Low.energy.swimming
29/10/2015 6:16:23 9 Low.energy.swimming
29/10/2015 6:16:24 9 Low.energy.swimming
29/10/2015 6:16:25 9 Low.energy.swimming
29/10/2015 6:16:26 9 Low.energy.swimming
29/10/2015 6:16:27 9 Low.energy.swimming
29/10/2015 6:16:28 9 Low.energy.swimming
29/10/2015 6:16:29 9 Low.energy.swimming
29/10/2015 6:16:30 9 Burst
29/10/2015 6:16:31 9 Burst
29/10/2015 6:16:32 9 Burst
29/10/2015 6:16:33 9 Burst
29/10/2015 6:16:34 9 Burst
29/10/2015 6:16:35 9 Low.energy.swimming
29/10/2015 6:16:36 9 Low.energy.swimming
29/10/2015 6:16:37 9 Low.energy.swimming
29/10/2015 6:16:38 9 Low.energy.swimming
29/10/2015 6:16:39 9 Low.energy.swimming
29/10/2015 6:16:40 9 Low.energy.swimming
29/10/2015 6:16:41 9 Low.energy.swimming
29/10/2015 6:16:42 9 Low.energy.swimming
29/10/2015 6:16:43 9 Low.energy.swimming
29/10/2015 6:16:44 9 Low.energy.swimming
29/10/2015 6:16:45 9 Low.energy.swimming
29/10/2015 6:16:46 9 Low.energy.swimming
29/10/2015 6:16:47 9 Low.energy.swimming
29/10/2015 6:16:48 9 Low.energy.swimming
29/10/2015 6:16:49 9 Low.energy.swimming
29/10/2015 6:16:50 9 Low.energy.swimming
29/10/2015 6:16:51 9 Low.energy.swimming
29/10/2015 6:16:52 9 Low.energy.swimming
29/10/2015 6:16:53 9 Low.energy.swimming
29/10/2015 6:16:54 9 Low.energy.swimming
29/10/2015 6:16:55 9 Low.energy.swimming
29/10/2015 6:16:56 9 Low.energy.swimming
29/10/2015 6:16:57 9 Low.energy.swimming
29/10/2015 6:16:58 9 Low.energy.swimming
29/10/2015 6:16:59 9 Low.energy.swimming
29/10/2015 6:17:00 9 Low.energy.swimming
I have seven behaviours and a massive data set. I was thinking a loop may be the way to go but I don't have any experience with loops so would love your assistance with this!
Thank you!
CodePudding user response:
I like this question, as it has to do with log data, which sometimes isn't grouped well. This solution has three basic steps.
Get the data grouped by activity_line_no. Basically, any time the activity changes per ID, you add a new a new line number. This is discussed really well here Identify value change (categorical) by group. R
Compute the durations by line number. I like
lubridatefor this.Use
dplyrto get the overall summary means and std errorr.
library(dplyr)
library(lubridate)
df_grouped<-df %>%
group_by(ID) %>%
mutate(
change = case_when(
activity != lag(activity) ~ TRUE,
TRUE ~ FALSE
),
activity_line_no = cumsum(change)
) %>%
ungroup() %>%
select(date_time, ID, activity, activity_line_no)
df_grouped
#> # A tibble: 442 × 4
#> date_time ID activity activity_line_no
#> <chr> <chr> <chr> <int>
#> 1 29/10/2015 6:09:39 9 Low.energy.swimming 0
#> 2 29/10/2015 6:09:40 9 Low.energy.swimming 0
#> 3 29/10/2015 6:09:41 9 Low.energy.swimming 0
#> 4 29/10/2015 6:09:42 9 Low.energy.swimming 0
#> 5 29/10/2015 6:09:43 9 Low.energy.swimming 0
#> 6 29/10/2015 6:09:44 9 Travel 1
#> 7 29/10/2015 6:09:45 9 Travel 1
#> 8 29/10/2015 6:09:46 9 Travel 1
#> 9 29/10/2015 6:09:47 9 Travel 1
#> 10 29/10/2015 6:09:48 9 Travel 1
#> # … with 432 more rows
df_durations<-df_grouped %>%
group_by(ID, activity_line_no, activity) %>%
summarize(first_time_stamp=first(date_time),
last_time_stamp=last(date_time),
duration= ((dmy_hms(first_time_stamp) %--% dmy_hms(last_time_stamp)) %>% as.duration)/dminutes(1)
) %>%
ungroup()
df_durations
#> # A tibble: 11 × 6
#> ID activity_line_no activity first_time_stamp last_time_stamp duration
#> <chr> <int> <chr> <chr> <chr> <dbl>
#> 1 9 0 Low.energy… 29/10/2015 6:09:… 29/10/2015 6:0… 0.0667
#> 2 9 1 Travel 29/10/2015 6:09:… 29/10/2015 6:0… 0.117
#> 3 9 2 Low.energy… 29/10/2015 6:09:… 29/10/2015 6:1… 0.75
#> 4 9 3 Burst 29/10/2015 6:10:… 29/10/2015 6:1… 0.0667
#> 5 9 4 Low.energy… 29/10/2015 6:10:… 29/10/2015 6:1… 3.83
#> 6 9 5 Burst 29/10/2015 6:14:… 29/10/2015 6:1… 0.0833
#> 7 9 6 Low.energy… 29/10/2015 6:14:… 29/10/2015 6:1… 1.08
#> 8 9 7 Travel 29/10/2015 6:15:… 29/10/2015 6:1… 0.0667
#> 9 9 8 Low.energy… 29/10/2015 6:15:… 29/10/2015 6:1… 0.633
#> 10 9 9 Burst 29/10/2015 6:16:… 29/10/2015 6:1… 0.0667
#> 11 9 10 Low.energy… 29/10/2015 6:16:… 29/10/2015 6:1… 0.417
df_summary <-df_durations %>%
group_by(ID, activity) %>%
summarize(mean=mean(duration), stderr=sd(duration)/sqrt(n())) %>%
ungroup()
df_summary
#> # A tibble: 3 × 4
#> ID activity mean stderr
#> <chr> <chr> <dbl> <dbl>
#> 1 9 Burst 0.0722 0.00556
#> 2 9 Low.energy.swimming 1.13 0.558
#> 3 9 Travel 0.0917 0.025
Created on 2022-01-19 by the reprex package (v2.0.1)
CodePudding user response:
Here is another approach. If we assume each line of the logs is equal to 1 second, we can skip calculating the durations and just count the number of repeats per activity. R has the rle() function for that.
#find the run lengths
runlengths <-rle(df$V4)
idruns <- rle(df$V3)
#place the count and labels into a data frame
rundf <-data.frame(runs=runlengths$lengths, values=runlengths$values)
library(dplyr)
#Summarize the data
answer <- rundf %>% group_by(values) %>% summarize(mean_in_sec=mean(runs), stderr=sd(runs)/sqrt(n()))
answer
# A tibble: 3 × 3
values mean_in_sec stderr
<chr> <dbl> <dbl>
1 Burst 5.33 0.333
2 Low.energy.swimming 69 33.4
3 Travel 6.5 1.5
The numbers above are very similar to Joe's solution.
