我有来自5个不同珊瑚礁的5个不同温度记录仪的温度数据,以1摄氏度的间隔记录摄氏温度。众所周知,这些记录仪会偶尔进行无关的测量,有些在绘制时在数据中很明显。我的问题是,检测和删除这些测量的有效方法是什么?有超过7,000个测量值,因此手动方法是不可行的(或者,如果是,我宁愿学习更有效的方法来做到这一点)。另一个复杂因素是在跟踪期间温度显着上升;因此,在开始时对于开头的不切实际的高测量可能是非常合理的,使得使用固定的温度切断也不是可行的解决方案。
我的第一个想法是,我可以以12小时的间隔(任意间隔,可以很容易地以1天的间隔)组合所有5个接收器的运行平均温度,然后排除所有超过2度的值(基于这样的假设,它们应该都记录非常相似的温度,从而远离这种运行平均值。问题是我不确定如何在POSIXct格式中创建一系列间隔,我可以循环这样的事情,或者如何以有效的方式在这样的间隔期间获得不同记录器的组合均值。以下是我正在使用的数据示例:
> dput(head(final,10))
structure(list(Date_Time = structure(c(1458635007, 1458635011,
1458638607, 1458642207, 1458645807, 1458649407, 1458653007, 1458656607,
1458660207, 1458663807), class = c("POSIXct", "POSIXt"), tzone = "GMT"),
Temp = c(22.369, NA, 22.13, 21.867, 22.058, 22.992, 19.603,
18.937, 19.413, 20.15), logger = c("R05", "R05", "R05", "R05",
"R05", "R05", "R05", "R05", "R05", "R05")), .Names = c("Date_Time",
"Temp", "logger"), row.names = c(NA, 10L), class = "data.frame")
I also linked an image of a plot of the full data set to show the crazy measurements。 任何帮助将非常感激。如果我还应该在问题中加入其他任何内容以便更清楚,请告诉我。谢谢。