楼主: 1raindrop
1309 2

[问答] 求助!将毫秒级数据平滑成5分钟均值,在R语言中如何实现? [推广有奖]

  • 0关注
  • 0粉丝

高中生

75%

还不是VIP/贵宾

-

威望
0
论坛币
350 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
387 点
帖子
10
精华
0
在线时间
63 小时
注册时间
2013-12-17
最后登录
2023-9-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,现在手头上的数据是毫秒级的,想以每5分钟为一个时间段,计算每5分钟的均值,在R中要用到什么包或者函数?谢谢大神们解答!
二维码

扫码加我 拉你入群

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

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

关键词:如何实现 R语言 时间段 高频数据 数据处理

沙发
DJLX 发表于 2022-10-1 20:17:54 |只看作者 |坛友微信交流群
请问您的问题解决了吗?怎么解决的呢?

使用道具

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

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

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

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

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 14:50