从大型时间戳数据集中绘制平均每小时测量值

时间:2019-03-27 12:55:20

标签: r plot

我正在学习R,这是我必须面对的最具挑战性的任务之一,尽管我猜想这对于普通用户来说是一个非常简单的过程。

下面是我的数据集的一个head()示例,其中保存了数千行。 GMT_DATE列始于6/9/2018,结束于7/23/2018

> head(dataraw)
   GMT_DATE GMT_TIME ACTIVITY_Z
1: 6/9/2018 04:48:00          6
2: 6/9/2018 04:49:20          0
3: 6/9/2018 04:50:40          0
4: 6/9/2018 04:52:00          0
5: 6/9/2018 04:53:20          0
6: 6/9/2018 04:54:40          1

我已经将GMT_DATEGMT_TIME合并为:

> dataraw$Date_and_time<-as.POSIXct(paste(dataraw$GMT_DATE, dataraw$GMT_TIME), format="%m/%d/%Y %H:%M:%S")
> head(dataraw)
    GMT_DATE GMT_TIME ACTIVITY_Z                time
1: 6/20/2018 00:01:20          0 2018-06-20 00:01:20
2: 6/20/2018 00:02:40          0 2018-06-20 00:02:40
3: 6/20/2018 00:04:00          0 2018-06-20 00:04:00
4: 6/20/2018 00:05:20          0 2018-06-20 00:05:20
5: 6/20/2018 00:06:40          0 2018-06-20 00:06:40
6: 6/20/2018 00:08:00          0 2018-06-20 00:08:00
> dataraw<-dataraw[,c(4,3)]
> head(dataraw)
         Date_and_time ACTIVITY_Z
1: 2018-06-20 00:01:20          0
2: 2018-06-20 00:02:40          0
3: 2018-06-20 00:04:00          0
4: 2018-06-20 00:05:20          0
5: 2018-06-20 00:06:40          0
6: 2018-06-20 00:08:00          0

我的目标是制作plot(time_of_the_day,activity)在X轴上显示一天中的时间(每小时,从00h到23h),并在Y轴上显示活动。

此图将基于的数据是样本head(dataraw)中的数据。

脚本应该取ACTIVITY_Z上每天每一小时的GMT_DATE平均值。可能的first_output如下表所示(我尚未填写ACTIVITY_Z的每小时平均值的值:

head(first_output)
    Date_and_time    activity
1: 6/9/2018 00:00:00         
2: 6/9/2018 01:00:00
3: 6/9/2018 02:00:00
4: 6/9/2018 03:00:00
5: 6/9/2018 04:00:00
6: 6/9/2018 05:00:00

然后,将根据实验期间(ACTIVITY_Z6/9/2018)的每一天的小时平均值来计算7/23/2018的平均小时值,这样我就结束了与:

head(second_output)
   time_of_the_day    activity
1: 00:00:00         
2: 01:00:00
3: 02:00:00
4: 03:00:00
5: 04:00:00
6: 05:00:00

最终的图将最终使用`plot(time_of_the_day,activity)进行上述构建。

R中是否有预构建的function()自动执行此计算,还是需要手动完成?我需要有人让我走上正确的轨道。

感谢您的帮助!

PS:这是我的数据的一个dput()样本:

> dput(dataraw)
structure(list(GMT_DATE = c("6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", "6/20/2018", 
"6/20/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", 
"6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018", "6/21/2018"
), GMT_TIME = c("22:14:40", "22:16:00", "22:17:20", "22:18:40", 
"22:20:00", "22:21:20", "22:22:40", "22:24:00", "22:25:20", "22:26:40", 
"22:28:00", "22:29:20", "22:30:40", "22:32:00", "22:33:20", "22:34:40", 
"22:36:00", "22:37:20", "22:38:40", "22:40:00", "22:41:20", "22:42:40", 
"22:44:00", "22:45:20", "22:46:40", "22:48:00", "22:49:20", "22:50:40", 
"22:52:00", "22:53:20", "22:54:40", "22:56:00", "22:57:20", "22:58:40", 
"23:00:00", "23:01:20", "23:02:40", "23:04:00", "23:05:20", "23:06:40", 
"23:08:00", "23:09:20", "23:10:40", "23:12:00", "23:13:20", "23:14:40", 
"23:16:00", "23:17:20", "23:18:40", "23:20:00", "23:21:20", "23:22:40", 
"23:24:00", "23:25:20", "23:26:40", "23:28:00", "23:29:20", "23:30:40", 
"23:32:00", "23:33:20", "23:34:40", "23:36:00", "23:37:20", "23:38:40", 
"23:40:00", "23:41:20", "23:42:40", "23:44:00", "23:45:20", "23:46:40", 
"23:48:00", "23:49:20", "23:50:40", "23:52:00", "23:53:20", "23:54:40", 
"23:56:00", "23:57:20", "23:58:40", "00:00:00", "00:01:20", "00:02:40", 
"00:04:00", "00:05:20", "00:06:40", "00:08:00", "00:09:20", "00:10:40", 
"00:12:00", "00:13:20", "00:14:40", "00:16:00", "00:17:20", "00:18:40", 
"00:20:00", "00:21:20", "00:22:40", "00:24:00", "00:25:20", "00:26:40", 
"00:28:00", "00:29:20", "00:30:40", "00:32:00", "00:33:20", "00:34:40", 
"00:36:00", "00:37:20", "00:38:40", "00:40:00", "00:41:20", "00:42:40", 
"00:44:00", "00:45:20", "00:46:40", "00:48:00", "00:49:20", "00:50:40", 
"00:52:00", "00:53:20", "00:54:40", "00:56:00", "00:57:20", "00:58:40", 
"01:00:00", "01:01:20", "01:02:40", "01:04:00", "01:05:20", "01:06:40", 
"01:08:00", "01:09:20", "01:10:40", "01:12:00", "01:13:20", "01:14:40", 
"01:16:00", "01:17:20", "01:18:40", "01:20:00", "01:21:20", "01:22:40", 
"01:24:00", "01:25:20", "01:26:40", "01:28:00", "01:29:20", "01:30:40", 
"01:32:00", "01:33:20", "01:34:40", "01:36:00", "01:37:20", "01:38:40", 
"01:40:00", "01:41:20", "01:42:40", "01:44:00", "01:45:20", "01:46:40", 
"01:48:00", "01:49:20", "01:50:40", "01:52:00", "01:53:20", "01:54:40", 
"01:56:00", "01:57:20", "01:58:40", "02:00:00", "02:01:20", "02:02:40", 
"02:04:00", "02:05:20", "02:06:40", "02:08:00", "02:09:20", "02:10:40", 
"02:12:00", "02:13:20", "02:14:40", "02:16:00", "02:17:20", "02:18:40", 
"02:20:00", "02:21:20", "02:22:40", "02:24:00", "02:25:20", "02:26:40", 
"02:28:00", "02:29:20", "02:30:40", "02:32:00", "02:33:20", "02:34:40", 
"02:36:00", "02:37:20", "02:38:40", "02:40:00", "02:41:20", "02:42:40", 
"02:44:00", "02:45:20", "02:46:40", "02:48:00", "02:49:20", "02:50:40", 
"02:52:00", "02:53:20", "02:54:40", "02:56:00", "02:57:20", "02:58:40", 
"03:00:00", "03:01:20", "03:02:40", "03:04:00", "03:05:20", "03:06:40", 
"03:08:00", "03:09:20", "03:10:40", "03:12:00", "03:13:20", "03:14:40", 
"03:16:00", "03:17:20", "03:18:40", "03:20:00", "03:21:20", "03:22:40", 
"03:24:00", "03:25:20", "03:26:40", "03:28:00", "03:29:20", "03:30:40", 
"03:32:00", "03:33:20", "03:34:40", "03:36:00", "03:37:20", "03:38:40", 
"03:40:00", "03:41:20", "03:42:40", "03:44:00", "03:45:20", "03:46:40", 
"03:48:00", "03:49:20", "03:50:40", "03:52:00", "03:53:20", "03:54:40", 
"03:56:00", "03:57:20", "03:58:40", "04:00:00", "04:01:20", "04:02:40", 
"04:04:00", "04:05:20", "04:06:40", "04:08:00", "04:09:20", "04:10:40", 
"04:12:00", "04:13:20", "04:14:40", "04:16:00", "04:17:20", "04:18:40", 
"04:20:00", "04:21:20", "04:22:40", "04:24:00", "04:25:20", "04:26:40", 
"04:28:00", "04:29:20", "04:30:40", "04:32:00", "04:33:20", "04:34:40", 
"04:36:00", "04:37:20", "04:38:40", "04:40:00", "04:41:20", "04:42:40", 
"04:44:00", "04:45:20", "04:46:40", "04:48:00", "04:49:20", "04:50:40", 
"04:52:00", "04:53:20", "04:54:40", "04:56:00", "04:57:20", "04:58:40", 
"05:00:00", "05:01:20", "05:02:40", "05:04:00", "05:05:20", "05:06:40", 
"05:08:00", "05:09:20", "05:10:40", "05:12:00", "05:13:20", "05:14:40", 
"05:16:00", "05:17:20", "05:18:40", "05:20:00", "05:21:20", "05:22:40", 
"05:24:00", "05:25:20", "05:26:40", "05:28:00", "05:29:20", "05:30:40", 
"05:32:00", "05:33:20", "05:34:40", "05:36:00", "05:37:20", "05:38:40", 
"05:40:00", "05:41:20", "05:42:40", "05:44:00", "05:45:20", "05:46:40", 
"05:48:00", "05:49:20", "05:50:40", "05:52:00", "05:53:20", "05:54:40", 
"05:56:00", "05:57:20", "05:58:40", "06:00:00", "06:01:20", "06:02:40", 
"06:04:00", "06:05:20", "06:06:40", "06:08:00", "06:09:20", "06:10:40", 
"06:12:00", "06:13:20", "06:14:40", "06:16:00", "06:17:20", "06:18:40", 
"06:20:00", "06:21:20", "06:22:40", "06:24:00", "06:25:20", "06:26:40", 
"06:28:00", "06:29:20", "06:30:40", "06:32:00", "06:33:20", "06:34:40", 
"06:36:00", "06:37:20", "06:38:40", "06:40:00", "06:41:20", "06:42:40", 
"06:44:00", "06:45:20", "06:46:40", "06:48:00", "06:49:20", "06:50:40", 
"06:52:00", "06:53:20", "06:54:40", "06:56:00", "06:57:20", "06:58:40", 
"07:00:00", "07:01:20", "07:02:40", "07:04:00", "07:05:20", "07:06:40", 
"07:08:00", "07:09:20", "07:10:40", "07:12:00", "07:13:20", "07:14:40", 
"07:16:00", "07:17:20", "07:18:40", "07:20:00", "07:21:20", "07:22:40", 
"07:24:00", "07:25:20", "07:26:40", "07:28:00", "07:29:20", "07:30:40", 
"07:32:00", "07:33:20", "07:34:40", "07:36:00", "07:37:20", "07:38:40", 
"07:40:00", "07:41:20", "07:42:40", "07:44:00", "07:45:20", "07:46:40", 
"07:48:00", "07:49:20", "07:50:40", "07:52:00", "07:53:20", "07:54:40", 
"07:56:00", "07:57:20", "07:58:40", "08:00:00", "08:01:20", "08:02:40", 
"08:04:00", "08:05:20", "08:06:40", "08:08:00", "08:09:20", "08:10:40", 
"08:12:00", "08:13:20", "08:14:40", "08:16:00", "08:17:20", "08:18:40", 
"08:20:00", "08:21:20", "08:22:40", "08:24:00", "08:25:20", "08:26:40", 
"08:28:00", "08:29:20", "08:30:40", "08:32:00", "08:33:20", "08:34:40", 
"08:36:00", "08:37:20", "08:38:40", "08:40:00", "08:41:20", "08:42:40", 
"08:44:00", "08:45:20", "08:46:40", "08:48:00", "08:49:20", "08:50:40", 
"08:52:00", "08:53:20", "08:54:40", "08:56:00", "08:57:20", "08:58:40", 
"09:00:00", "09:01:20", "09:02:40", "09:04:00", "09:05:20", "09:06:40", 
"09:08:00", "09:09:20", "09:10:40", "09:12:00", "09:13:20", "09:14:40", 
"09:16:00", "09:17:20", "09:18:40", "09:20:00", "09:21:20", "09:22:40", 
"09:24:00", "09:25:20", "09:26:40", "09:28:00", "09:29:20", "09:30:40", 
"09:32:00", "09:33:20", "09:34:40", "09:36:00", "09:37:20", "09:38:40", 
"09:40:00", "09:41:20", "09:42:40", "09:44:00", "09:45:20", "09:46:40", 
"09:48:00", "09:49:20", "09:50:40", "09:52:00", "09:53:20", "09:54:40", 
"09:56:00", "09:57:20", "09:58:40", "10:00:00", "10:01:20", "10:02:40", 
"10:04:00", "10:05:20", "10:06:40", "10:08:00", "10:09:20", "10:10:40", 
"10:12:00", "10:13:20", "10:14:40", "10:16:00", "10:17:20", "10:18:40", 
"10:20:00", "10:21:20", "10:22:40", "10:24:00", "10:25:20", "10:26:40", 
"10:28:00", "10:29:20", "10:30:40", "10:32:00", "10:33:20", "10:34:40", 
"10:36:00", "10:37:20", "10:38:40", "10:40:00", "10:41:20", "10:42:40", 
"10:44:00", "10:45:20", "10:46:40", "10:48:00", "10:49:20", "10:50:40", 
"10:52:00", "10:53:20", "10:54:40", "10:56:00", "10:57:20", "10:58:40", 
"11:00:00", "11:01:20", "11:02:40", "11:04:00", "11:05:20", "11:06:40", 
"11:08:00", "11:09:20", "11:10:40", "11:12:00", "11:13:20", "11:14:40", 
"11:16:00", "11:17:20", "11:18:40", "11:20:00", "11:21:20", "11:22:40", 
"11:24:00", "11:25:20", "11:26:40", "11:28:00", "11:29:20", "11:30:40", 
"11:32:00", "11:33:20", "11:34:40", "11:36:00", "11:37:20", "11:38:40", 
"11:40:00", "11:41:20", "11:42:40", "11:44:00", "11:45:20", "11:46:40", 
"11:48:00", "11:49:20", "11:50:40", "11:52:00", "11:53:20", "11:54:40", 
"11:56:00", "11:57:20", "11:58:40", "12:00:00", "12:01:20", "12:02:40", 
"12:04:00", "12:05:20", "12:06:40", "12:08:00", "12:09:20", "12:10:40", 
"12:12:00", "12:13:20", "12:14:40", "12:16:00", "12:17:20", "12:18:40", 
"12:20:00", "12:21:20", "12:22:40", "12:24:00", "12:25:20", "12:26:40", 
"12:28:00", "12:29:20", "12:30:40", "12:32:00", "12:33:20", "12:34:40", 
"12:36:00", "12:37:20", "12:38:40", "12:40:00", "12:41:20", "12:42:40", 
"12:44:00", "12:45:20", "12:46:40", "12:48:00", "12:49:20", "12:50:40", 
"12:52:00", "12:53:20", "12:54:40", "12:56:00", "12:57:20", "12:58:40", 
"13:00:00", "13:01:20", "13:02:40", "13:04:00", "13:05:20", "13:06:40", 
"13:08:00", "13:09:20", "13:10:40", "13:12:00", "13:13:20", "13:14:40", 
"13:16:00", "13:17:20", "13:18:40", "13:20:00", "13:21:20", "13:22:40", 
"13:24:00", "13:25:20", "13:26:40", "13:28:00", "13:29:20", "13:30:40", 
"13:32:00", "13:33:20", "13:34:40", "13:36:00", "13:37:20", "13:38:40", 
"13:40:00", "13:41:20", "13:42:40", "13:44:00", "13:45:20", "13:46:40", 
"13:48:00", "13:49:20", "13:50:40", "13:52:00", "13:53:20", "13:54:40", 
"13:56:00", "13:57:20", "13:58:40", "14:00:00", "14:01:20", "14:02:40", 
"14:04:00", "14:05:20", "14:06:40", "14:08:00", "14:09:20", "14:10:40"
), ACTIVITY_Z = c(74L, 68L, 38L, 85L, 73L, 241L, 171L, 49L, 53L, 
61L, 58L, 140L, 60L, 59L, 43L, 37L, 38L, 78L, 73L, 76L, 118L, 
59L, 72L, 61L, 73L, 80L, 77L, 76L, 91L, 69L, 64L, 50L, 44L, 70L, 
79L, 68L, 69L, 67L, 59L, 77L, 69L, 81L, 52L, 122L, 37L, 71L, 
68L, 103L, 46L, 106L, 84L, 139L, 81L, 48L, 35L, 106L, 64L, 14L, 
10L, 1L, 0L, 7L, 1L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 1L, 1L, 5L, 0L, 9L, 0L, 0L, 38L, 98L, 0L, 0L, 0L, 4L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 3L, 38L, 45L, 1L, 0L, 0L, 0L, 2L, 0L, 2L, 2L, 0L, 
0L, 0L, 8L, 0L, 0L, 0L, 0L, 13L, 102L, 37L, 30L, 0L, 0L, 0L, 
0L, 1L, 0L, 1L, 0L, 0L, 4L, 1L, 1L, 1L, 2L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 1L, 6L, 5L, 32L, 28L, 6L, 6L, 4L, 1L, 1L, 4L, 6L, 3L, 
1L, 3L, 0L, 0L, 1L, 0L, 0L, 0L, 55L, 37L, 0L, 11L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 11L, 0L, 0L, 16L, 
37L, 31L, 32L, 31L, 46L, 25L, 40L, 43L, 55L, 64L, 55L, 62L, 33L, 
0L, 0L, 0L, 11L, 0L, 0L, 87L, 152L, 65L, 53L, 53L, 94L, 58L, 
98L, 148L, 61L, 95L, 80L, 50L, 36L, 55L, 26L, 167L, 192L, 258L, 
156L, 210L, 91L, 105L, 175L, 218L, 91L, 74L, 117L, 102L, 82L, 
83L, 89L, 113L, 114L, 46L, 0L, 41L, 132L, 136L, 80L, 30L, 82L, 
74L, 109L, 87L, 58L, 92L, 123L, 65L, 188L, 80L, 79L, 123L, 124L, 
98L, 86L, 70L, 54L, 74L, 107L, 140L, 113L, 84L, 82L, 101L, 109L, 
134L, 113L, 118L, 134L, 157L, 116L, 99L, 137L, 82L, 102L, 151L, 
107L, 112L, 106L, 84L, 84L, 93L, 144L, 73L, 90L, 102L, 154L, 
74L, 99L, 94L, 85L, 93L, 90L, 92L, 58L, 54L, 31L, 66L, 69L, 55L, 
52L, 82L, 93L, 48L, 38L, 65L, 71L, 60L, 57L, 63L, 64L, 57L, 94L, 
62L, 70L, 88L, 107L, 105L, 98L, 97L, 65L, 63L, 44L, 104L, 56L, 
68L, 67L, 73L, 75L, 66L, 92L, 103L, 64L, 83L, 78L, 97L, 84L, 
82L, 36L, 130L, 67L, 24L, 62L, 90L, 97L, 64L, 12L, 49L, 42L, 
34L, 95L, 17L, 6L, 12L, 26L, 45L, 56L, 133L, 49L, 73L, 43L, 15L, 
56L, 16L, 30L, 29L, 47L, 34L, 21L, 59L, 71L, 47L, 109L, 117L, 
43L, 89L, 69L, 9L, 46L, 39L, 62L, 21L, 44L, 9L, 17L, 25L, 8L, 
31L, 45L, 26L, 46L, 28L, 16L, 27L, 29L, 9L, 6L, 22L, 18L, 44L, 
57L, 23L, 20L, 5L, 12L, 91L, 75L, 76L, 90L, 57L, 5L, 9L, 22L, 
21L, 16L, 12L, 0L, 10L, 13L, 7L, 11L, 6L, 8L, 27L, 16L, 220L, 
111L, 95L, 126L, 123L, 101L, 79L, 84L, 98L, 96L, 92L, 105L, 89L, 
67L, 64L, 80L, 98L, 110L, 68L, 107L, 91L, 47L, 98L, 115L, 110L, 
136L, 98L, 129L, 69L, 59L, 87L, 71L, 97L, 81L, 39L, 23L, 7L, 
14L, 0L, 2L, 0L, 4L, 1L, 8L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 16L, 0L, 0L, 
1L, 8L, 24L, 20L, 8L, 34L, 2L, 0L, 1L, 0L, 49L, 105L, 57L, 18L, 
33L, 26L, 34L, 55L, 35L, 117L, 0L, 6L, 0L, 0L, 4L, 15L, 144L, 
105L, 78L, 45L, 118L, 64L, 97L, 63L, 82L, 89L, 89L, 78L, 66L, 
94L, 124L, 125L, 110L, 74L, 179L, 34L, 115L, 165L, 92L, 64L, 
79L, 70L, 76L, 99L, 84L, 123L, 64L, 85L, 60L, 33L, 35L, 80L, 
68L, 72L, 81L, 81L, 105L, 85L, 89L, 98L, 68L, 76L, 114L, 102L, 
0L, 31L, 130L, 52L, 52L, 9L, 16L, 141L, 72L, 85L, 94L, 213L, 
95L, 112L, 108L, 100L, 136L, 220L, 157L, 98L, 109L, 129L, 122L, 
85L, 118L, 78L, 86L, 99L, 113L, 177L, 104L, 104L, 101L, 56L, 
77L, 66L, 77L, 70L, 67L, 67L, 92L, 79L, 92L, 74L, 141L, 55L, 
118L, 64L, 71L, 112L, 91L, 88L, 54L, 68L, 113L, 109L, 85L, 61L, 
80L, 83L, 72L, 119L, 109L, 19L, 69L, 20L, 3L, 4L, 7L, 0L, 0L, 
7L, 7L, 9L, 11L, 13L, 140L, 139L, 66L, 121L, 121L, 98L, 126L, 
166L, 172L, 95L, 93L, 102L, 92L, 87L, 89L, 90L, 116L, 51L, 223L, 
124L, 85L, 99L, 75L, 70L, 74L, 95L, 94L, 121L, 70L, 78L, 90L, 
133L, 133L, 40L, 5L, 86L, 22L, 4L, 5L, 1L, 50L, 8L, 0L, 0L, 0L, 
0L)), row.names = c(NA, -718L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x00000000051e1ef0>)

1 个答案:

答案 0 :(得分:1)

由于您仅提供了一天的样本数据,因此我无法在多天内验证此代码,但我认为它应该可以工作。

library(lubridate)
data.byday <- split(dataraw,dataraw$GMT_DATE)
act.byHour <- Reduce(function(...) merge(..., by = c('hour')), lapply(data.byday,function(df.day)
{
  df.day$hour <- as.numeric(as.difftime(df.day$GMT_TIME,units="mins")) %/% 60  
  act.p.hour <- sapply(split(df.day,df.day$hour),function(df.hour){return(sum(df.hour$ACTIVITY_Z))})
  #steps for missing data
  hours <- as.integer(c(names(act.p.hour),seq(0,23)[!(0:23 %in% names(act.p.hour))])) 
  act.p.hour <- c(act.p.hour,rep(NA,24-length(act.p.hour))) 
  act.p.hour <- act.p.hour[order(hours)] 
  return(data.frame(hour=hours,activity=act.p.hour))
}))
names(act.byHour) <- c("hour",paste("Activity on",names(data.byday)))

#histogram like plot
plot(act.byHour$hour,rowMeans(act.byHour[,-1],na.rm=T),type="h",lwd=20,xlab="Hour of the day",ylab="Activity")

#points with standard deviations
mean <- rowMeans(act.byHour[,-1],na.rm=T)
sd <- apply(act.byHour[,-1],1,sd,na.rm=T)
plot(act.byHour$hour,rowMeans(act.byHour[,-1],na.rm=T),type="p",pch=19,xlab="Hour of the day",ylab="Activity")
arrows(act.byHour$hour,mean-sd,act.byHour$hour,mean+sd, code=3, length=0.02, angle = 90)

它将数据按天划分,然后计算天中每小时的ACTIVITY_Z的总和,并将其作为列表返回。