【发布时间】:2019-05-18 10:03:30
【问题描述】:
我有这个data.frame:
Time a b c d
1 2015-01-01 00:00:00 863 1051 1899 25385
2 2015-01-01 01:00:00 920 1009 1658 24382
3 2015-01-01 02:00:00 1164 973 1371 22734
4 2015-01-01 03:00:00 1503 949 779 21286
5 2015-01-01 04:00:00 1826 953 720 20264
6 2015-01-01 05:00:00 2109 952 743 19905
...
Time a b c d
8756 2015-12-31 19:00:00 0 775 4957 28812
8757 2015-12-31 20:00:00 0 783 5615 29568
8758 2015-12-31 21:00:00 0 790 4838 28653
8759 2015-12-31 22:00:00 0 766 3841 27078
8760 2015-12-31 23:00:00 72 729 2179 24565
8761 2016-01-01 00:00:00 290 710 1612 23311
它代表一年中每一天的每一个小时。我想每天提取一行,作为 d 最大值的函数。所以最后我想获得一个365x5的data.frame。
我已经尝试了来自:Extract the maximum value within each group in a dataframe 和:Daily minimum values in R 的所有提议,但仍然不起作用。
这可能来自于我继续生成时间序列的方式吗?
library(lubridate)
start <- dmy_hms("1 Jan 2015 00:00:00")
end <- dmy_hms("01 Jan 2016 00:00:00")
time <- as.data.frame(seq(start, end, by="hours"))
感谢您的帮助!
【问题讨论】:
-
这些
mydf和df是不同的对象吗?如果是data.table,使用setDT(mydf)[, .(d = max(d)), by = .(Day = as.Date(Time))]
标签: r time-series extract