绘制约束

时间:2016-04-21 21:15:54

标签: r

我有一个很大的数据集,我想绘制zizi与小时的关系,但仅限于每小时,而变量看起来像这样:

> datasetjc$hour[1:100]
  [1] 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23
 [40] 23 23 23 23 23 23 23 23 23 23 23 23 23 23  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
 [79]  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 

> datasetjc$zizi[1:100]
  [1]  2 27  2  3 45  0  6  0 15  8  3  1  4  0  0 15  1 13  0 15 23  8 21  2  0  9 43 26 31 33 11  0  4  7 26  2 25 14  1
 [40]  3  1  6  3  4  3  2 27  2  3 45  0  7  0 15  8  3  1  4  0  4 26  0 15  1  4  0 15 14 12 23  8  3 21 13  2  0 32 43
 [79] 31 11  4  0  4  7 26 10  2 25 25  1  1  4  4 23  3  2 27  2 45  0
> 

我还有会议记录,日期和日期。每个数据仅相隔5分钟。我该怎么做情节?

THX

1 个答案:

答案 0 :(得分:0)

如果我们将您的问题视为“我如何获得每隔五分钟获取的数据的每小时摘要”,那么这是一个经典的拆分应用组合。 Average data by group是对不同技术的一个很好的总结。

对于此特定示例,在vanilla R中使用aggregateby函数。

> df <- data.frame(hour=c(1,1,2,2,3,3,4,4), zizi=1:8)
> aggregate(zizi ~ hour, data=df, mean)
  hour zizi
1    1  1.5
2    2  3.5
3    3  5.5
4    4  7.5

如果您希望按日期/小时汇总,则使用+

> aggregate(zizi ~ hour + day, data=df, mean)

对于更高级的版本,我建议花一些时间学习dplyrdata.table,因为两者都是用于执行这个极其常见任务的更复杂版本的优秀库。

此外,为了便于日后参考,请参阅How to make a great R reproducible example?,了解有关如何更清楚地提出问题的建议。