传感器数据集的零偏移

问题描述

我在搜索中找不到答案,但可能我使用了错误的术语。 我正在尝试对漂移的深度传感器数据进行零偏移。

我有一个包含数月数据的大型数据集,增量为 5 秒,如下所示:

  Depth Temperature Light_Level          Local_time
1  64.0       27.55         148 2013-10-14 12:30:00
2  65.5       27.50         148 2013-10-14 12:30:05
3  65.5       27.40         148 2013-10-14 12:30:10
4  66.0       27.35         148 2013-10-14 12:30:15
5  67.5       27.25         147 2013-10-14 12:30:20

我需要调整,所以 0 是深度的最小值。为了做到这一点,我使用了以下代码

daily_depths <- with(dataset_1,aggregate(Depth ~ as.Date(Local_time),FUN =  function(x) c(Min = min(x),Max = max(x)))) #pulls out min daily depth for each day

min_max <- do.call(data.frame,daily_depths) #converts to a df with date,min and max values

MA5 <- stats::filter(min_max$Depth.Min,rep(1,5),sides = 2)/5 #calculates a moving average from 5 values centered on the current value

MA5 输出为时间序列,开始 = 1,结束 = 180(或以天为单位的数据集长度),频率 = 1

例如打印:[1] NA NA -0.6 -0.6 -0.6 -0.5 -0.5 -0.5 -0.5 -0.5 ...... -0.5 NA NA

现在我想从当天的所有数据点中减去每日值。有几个问题:

  1. 前两天和最后两天没有 5 天移动平均线。我想创建一个平均值并用这些数字替换 NA。对于倒数第二个和最后一个是 MA 的简单修改,使用 side = 1
  2. 对于第一个和第二个,我不确定 side 函数如何不允许使用未来值。
  3. 一旦我有了这些数字,我该如何在 MA5 时间序列中用它们替换 NA

最后,我需要从相应日期的每个深度值中添加或减去每日移动平均值,这将取决于数字是正数还是负数,以更正回 0。 对此的任何帮助都会很棒。非常感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...