【问题标题】:identify last and first measurement during the day确定一天中的最后一次和第一次测量
【发布时间】:2020-05-19 16:56:41
【问题描述】:

我试图确定时间序列中的 2 个点 - 每天早上的最后一个数据点和晚上的第一个数据点。我在下图中将相关点标记为绿色。请注意,它们不一定是最高点 - 它们应该是数据变为零之前的最后一个。

我玩过间隔但没有成功...... 感谢您对此的意见!

迈克尔

这是我平均每小时...一天的数据子集:

structure(list(hour = c(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 16L, 
17L, 18L, 19L, 20L, 21L, 22L, 23L), value = c(2.7272895638485, 
2.17238888888889, 1.79964814814815, 1.91384259259259, 2.62237962962963, 
5.37035185185185, 9.16018518518518, 13.5703981481481, 13.8340484814712, 
7.93048148148148, 7.69624074074074, 7.03816666666667, 5.23764814814815, 
4.16410185185185, 4.22922222222222, 3.47449908925319)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -16L))

【问题讨论】:

  • 您能否使用dput显示您的一些数据?
  • 我添加了一个小数据集,每个小时的平均分数......原则上问题保持不变:)
  • 您添加的数据集显示图片的图案。早上有 no 最后一个数据点,晚上有 no 第一个数据点。如果数据显示超过一天也很好。
  • 初始图有大约 100k 个数据点,所以我决定平均每小时并能够使用 dput ...该图现在已更新并显示我感兴趣的点...这里它们是最大值,但并非总是如此......

标签: r time-series


【解决方案1】:

您可以使用diff 来查找时间间隔并获取间隔之前的值,例如:

i <- diff(x$hour) > 1
x[c(i,FALSE) | c(FALSE,i),]
#  hour    value
#8    7 13.57040
#9   16 13.83405

【讨论】:

    猜你喜欢
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    相关资源
    最近更新 更多