以R为单位的小时时间序列

以R为单位的小时时间序列,r,time,time-series,zoo,R,Time,Time Series,Zoo,我有POSIXct格式的样本时间数据(如下),但无法使用ts()将其转换为小时时间序列 我的目标是随后使用dygraph()显示此小时时间序列。在下面的示例中,我使用以下代码按天生成了一个时间序列: trips <- as.data.frame(matrix(ncol=1, nrow=30)) colnames(trips) <- c("count") trips$count <- floor(runif(30, min=50, max=101)) z <- zoo(t

我有POSIXct格式的样本时间数据(如下),但无法使用
ts()
将其转换为小时时间序列

我的目标是随后使用
dygraph()
显示此小时时间序列。在下面的示例中,我使用以下代码按天生成了一个时间序列:

trips <- as.data.frame(matrix(ncol=1, nrow=30))
colnames(trips) <- c("count")
trips$count <-  floor(runif(30, min=50, max=101))
z <- zoo(trips, seq(from = as.Date("2017-09-01"), to = as.Date("2017-09-30"), by = 1))

z <- as.ts(z)

dygraph(z, main = "Daily Trips") 

也许是这样的:

z = ts(dat, start =1, end =8, frequency = 1)
class(z) <- c("POSIXct", "POSIXt")
#[1] "2017-09-25 13:34:53 GMT" "2017-09-25 13:56:43 GMT" "2017-09-25 14:33:40 GMT" "2017-09-25 14:34:24 GMT" "2017-09-25 14:43:33 GMT" "2017-09-25 15:34:53 GMT" "2017-09-25 15:36:07 GMT" "2017-09-25 15:40:50 GMT"
第二个长度为9,在原始
dat

第三种选择: 这将给出以下动态图:

是否
tz
来自某个特定库?是否来自
lubridate
您的预期输出是什么?根据我从
tz
读到的内容,这将获取或设置时区,而不是从中创建一个序列我的预期输出是一个按小时分组数据的时间序列-我将
tz()
更改为
ts()
编辑的答案是否有帮助?是的,但数据应该是按小时分组的时间序列按小时分组意味着什么?每唯一小时一个值?@你有9个唯一小时,你会消除哪一个小时?我不会消除任何小时,它将是9,然后是,谢谢,但这不会产生一个按唯一小时分组或显示在
dygraph()
上的时间序列,我将在我的问题中解释
> dput(dat)
structure(c(1506339293, 1506340603, 1506342820, 1506342864, 1506343413, 
1506346493, 1506346567, 1506346850, 1506349152, 1506349323, 1506349621, 
1506350101, 1506352194, 1506352657, 1506352705, 1506355190, 1506357486, 
1506357701, 1506358964, 1506359843, 1506360640, 1506361323, 1506362187, 
1506363839, 1506368571), class = c("POSIXct", "POSIXt"), tzone = "")
z = ts(dat, start =1, end =8, frequency = 1)
class(z) <- c("POSIXct", "POSIXt")
#[1] "2017-09-25 13:34:53 GMT" "2017-09-25 13:56:43 GMT" "2017-09-25 14:33:40 GMT" "2017-09-25 14:34:24 GMT" "2017-09-25 14:43:33 GMT" "2017-09-25 15:34:53 GMT" "2017-09-25 15:36:07 GMT" "2017-09-25 15:40:50 GMT"
seq(from =dat[1], to = dat[length(dat)], by ='hour')
#[1] "2017-09-25 13:34:53 GMT" "2017-09-25 14:34:53 GMT" "2017-09-25 15:34:53 GMT" "2017-09-25 16:34:53 GMT" "2017-09-25 17:34:53 GMT" "2017-09-25 18:34:53 GMT" "2017-09-25 19:34:53 GMT" "2017-09-25 20:34:53 GMT" "2017-09-25 21:34:53 GMT"
library(lubridate)
library(data.table)

df = data.frame(timestamps = dat, bases = floor_date(dat, 'hour'))

setDT(df)
graph = df[,.N, by = bases]
dygraph(graph)