如何在R中使用xts搜索最小/最大值时查找日期和小时

时间:2014-05-13 04:22:56

标签: r date time min xts

我一直在努力寻找能够回答这个问题的论坛, 但我担心我没有找到如何解决这个问题。

我有这种格式的数据:

2013-12-17 22:45:00 18.521
2013-12-17 23:00:00 17.760
2013-12-17 23:15:00 18.140
2013-12-17 23:30:00 18.806
2013-12-17 23:45:00 18.045
2013-12-18 02:00:00 16.427
2013-12-18 02:15:00 16.237
2013-12-18 04:15:00 11.236
2013-12-18 04:30:00 11.041
2013-12-18 04:45:00 11.041
2013-12-18 05:00:00 10.846
2013-12-18 05:15:00 10.455
2013-12-18 05:30:00 10.553
2013-12-18 05:45:00 10.063
2013-12-18 06:00:00 10.259
2013-12-18 06:15:00 10.161
2013-12-18 06:30:00 10.063
2013-12-18 06:45:00  9.866
2013-12-18 07:00:00  9.866
2013-12-18 07:15:00  9.965
2013-12-18 07:30:00 10.651
2013-12-18 07:45:00 10.944
2013-12-18 08:00:00 11.431

周期为每天15分钟,持续数月。 并且它已经存储在具有类的var中:xts,zoo

当我使用时:

period.apply(
  xts.ts,
  endpoints(xts.ts, on = "days", 1),
  function(x) apply(x, 2, min)
)

我得到了这样的东西:

[,1]
2013-12-11 23:45:00 10.455
2013-12-12 23:45:00  8.879
2013-12-13 23:45:00 12.980
2013-12-14 23:45:00 12.883
2013-12-15 23:45:00 12.497
2013-12-16 23:45:00 10.944
2013-12-17 23:45:00 11.041
2013-12-18 08:00:00  9.866

但是,我想知道最小值(或值)的确切时间。每一天, 它总是出现在23:45:00(除了最后一种情况:08:00:00), 这是不正确的,正如您在原始数据中看到的那样:

2013-12-18 06:45:00  9.866
2013-12-18 07:00:00  9.866

此外,我尝试使用:

separated_by_days <- split(xts.ts, f = "days", drop=FALSE, k = 1)

我得到一个列表,其中包含以天为单位的信息,但如果我使用

period.apply(
  separated_by_days[[1]],
  INDEX=endpoints(days[[1]], on="days"),
  FUN=min
)

结果是一样的。 :(

如果你能给我一些解决这个问题的线索,我将不胜感激。谢谢!

0 个答案:

没有答案