【发布时间】:2018-05-26 01:29:25
【问题描述】:
我有一个带有时间戳、类别和数据值的数据,如下所示(但 >2000 行)。
Timestamp category data
7/16/2017 18:04 x 4.9
7/16/2017 18:18 y 4.7
7/16/2017 18:32 x 8.2
7/16/2017 18:46 x 2.2
7/16/2017 19:00 y 2.7
7/16/2017 19:14 y 3.8
7/16/2017 19:28 x 8.0
7/16/2017 19:42 x 7.3
7/16/2017 19:56 z 10.1
7/16/2017 20:10 z 5.4
7/16/2017 20:42 x 17.5
7/16/2017 20:56 x 6.3
7/16/2017 21:10 z 5.8
7/16/2017 21:24 x 0.6
7/16/2017 21:38 z 2.2
7/16/2017 21:52 z 2.9
7/16/2017 22:06 y 0.5
7/16/2017 22:20 x 5.1
7/16/2017 22:34 z 8.0
7/16/2017 22:48 z 3.6
我想通过应用 2 个条件来计算我的数据的平均值和标准差。必须每 2 小时计算一次平均值和 sd。 x,y,z 类别的平均值和 sd 必须单独计算。
最终的数据应该是这样的
Timestamp category data_avg data_sd
7/16/2017 18:00 x
7/16/2017 20:00 x
7/16/2017 22:00 x
7/17/2017 0:00 x
Timestamp category data_avg data_sd
7/16/2017 18:00 y
7/16/2017 20:00 y
7/16/2017 22:00 y
7/17/2017 0:00 y
Timestamp category data_avg data_sd
7/16/2017 18:00 z
7/16/2017 20:00 z
7/16/2017 22:00 z
7/17/2017 0:00 z
我尝试使用以下命令进行过滤和聚合
df<- aggregate(list(avgdata = df$data),
list(hourofday = cut(df$Timestamp, "1 hour")),
mean)
但它不起作用。它丢失了这么多数据点,而且在同一个 df 中也没有给出均值和 sd。
请帮忙。
【问题讨论】: