Home > database >  Average duration of time spent R
Average duration of time spent R

Time:01-20

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.

  1. 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

  2. Compute the durations by line number. I like lubridate for this.

  3. Use dplyr to 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.

  •  Tags:  
  • Related