全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1560 2
2017-08-30
如题,现在手头上的数据是毫秒级的,想以每5分钟为一个时间段,计算每5分钟的均值,在R中要用到什么包或者函数?谢谢大神们解答!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2022-10-1 20:17:54
请问您的问题解决了吗?怎么解决的呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-10-4 00:05:11
代码容易,但是首先要理解这个问题本身的问题。
你没说采样间隔,那么假定每毫秒采样一次,则5分钟的数据是30万个。说到这,你意识到问题了吗,30万个数据变成一个平均值,那么这个平均值到底有多大意义呢?在这5分钟里,数据的波动、极值等有效信息完全被过滤掉了。如果数据是长期稳定的,很可能最终的每5分钟均值画出来是一条直线。而如果数据有长期变化趋势,5分钟的窗口选择就会影响到均值结果。
如果你能理解上面说的,那么就会明白,用窗口平均值这种简单处理方法是不对的。

换一个角度看问题,毫秒级数据,已经可以近似作为线性数据了,数据越是线性越能反映真实变化,而用窗口均值,越是离散化,信息量越小。所以说,你想用的这种处理方法,简单,粗暴,不是好方法。

从实际需要出发,原始数据量太大,而你可能只是想观察长期变化趋势吧。那么有一种方法,您试试:
stats包有个decompose()函数,可以从时间序列中分解出trend数据。
但是这也有个问题,数据太大的话,即使只是计算均值,对系统的计算能力也是挑战,何况复杂的decompose运算。

而对于长期实时采样数据,比较现实的一种方法是增大采样间隔,或者只记录每个采样窗口内的上下两个极值。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群