R中的分箱日期

Bti*_*rt3 11 datetime r

我在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"
Run Code Online (Sandbox Code Playgroud)

为方便起见......

> dput(head(temp.df$time, n=10))
structure(c(1302335600, 1302335595, 1302335587, 1302335559, 1302335549, 
1302335516, 1302335514, 1302335506, 1302335504, 1302335486), class = c("POSIXct", 
"POSIXt"), tzone = "")
Run Code Online (Sandbox Code Playgroud)

我想做什么:

  • 如何查找最小和最大日期/时间之间的小时数?
  • 使用1小时时间段创建数据摘要的最佳方法是什么?

我们将非常感谢您提供的任何帮助

Dir*_*tel 6

使用适当的时间序列包zoo和/或xts.此示例直接来自帮助页面,每10分钟aggregate.zoo()聚合一次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)
Run Code Online (Sandbox Code Playgroud)

xts中to.period()功能也是一个肯定的赢家.在SO和r-sig-finance列表上有无数的例子.