我在 R 中处理日期和时间,但我希望这是一项相当基本的任务。
这是我的数据集:
> str(temp.df)
'data.frame': 74602 obs. of 2 variables:
$ time : POSIXct, format: "2011-04-09 03:53:20" "2011-04-09 03:53:15" "2011-04-09 03:53:07" "2011-04-09 03:52:39" ...
$ value: num 1 1 1 1 1 1 1 1 1 1 ...
> head(temp.df$time, n=10)
[1] "2011-04-09 03:53:20 EDT" "2011-04-09 03:53:15 EDT" "2011-04-09 03:53:07 EDT" "2011-04-09 03:52:39 EDT"
[5] "2011-04-09 03:52:29 EDT" "2011-04-09 03:51:56 EDT" "2011-04-09 03:51:54 EDT" "2011-04-09 03:51:46 EDT"
[9] "2011-04-09 03:51:44 EDT" "2011-04-09 03:51:26 EDT"
为了方便......
> dput(head(temp.df$time, n=10))
structure(c(1302335600, 1302335595, 1302335587, 1302335559, 1302335549,
1302335516, 1302335514, 1302335506, 1302335504, 1302335486), class = c("POSIXct",
"POSIXt"), tzone = "")
我想要做什么:
- 如何找到最短和最长日期/时间之间有多少小时?
- 使用 1 小时时间段创建数据摘要的最佳方法是什么?
如果您能提供任何帮助,我们将不胜感激
最佳答案
使用正确的时间序列包zoo和/或xts 。此示例直接来自 aggregate.zoo()
的帮助页面,该页面每 10 分钟聚合 POSIXct 秒数据
tt <- seq(10, 2000, 10)
x <- zoo(tt, structure(tt, class = c("POSIXt", "POSIXct")))
aggregate(x, time(x) - as.numeric(time(x)) %% 600, mean)
xts 中的 to.period()
函数也是一个肯定的赢家。 SO 和 r-sig-finance 列表上有无数的例子。
关于datetime - R 中的分箱日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5624140/