【发布时间】:2018-03-01 01:45:27
【问题描述】:
我试图弄清楚如何将我平均为“一年中的一天”数据的数据平滑。我已将下面示例代码中的问题尽可能简化。在我的实际脚本中,我计算了一个数据框,该数据框具有从 1 到 365 的“一年中的一天”索引列和第二列,该列是多年来一年中这一天的特定测量值的平均值。我试图通过计算该数据的中心运行平均值(例如 11 天)来进一步平滑数据。
我很难弄清楚如何有效地处理“日历中断”,这意味着在“一年中的某一天”数据的开始和结束时,我需要将 DoY = 365 交叉回到 DoY = 1。当平均值的中心从第 360 天到第 5 天时,如何计算运行平均值?
我开始拼凑一个解决方案,但很快就得出了不太优雅的代码。有没有有效的方法来做到这一点?
下面的示例提供了带有试验数据的示例数据框。
# A simulated daily time series average
ann_data <- data.frame(day=seq(1,365,1), data=
(sin(pi*seq(1:365)/182+90)+rnorm(365)/10))
plot(ann_data)
ann_data_smooth <- ?
【问题讨论】:
-
如果答案解决了您的问题,请accept it;这样做不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。尽管您只能接受一个答案(当提供多个答案时),但您可以选择对您认为有帮助的多个答案进行投票。 (如果仍有问题,您可能需要编辑您的问题并提供更多详细信息。)