将R中的时间数据绘制成各种分辨率(分钟,小时,秒等)

aym*_*man 9 statistics time plot r

我有一些CSV数据,如:

"Timestamp", "Count"
"2009-07-20 16:30:45", 10
"2009-07-20 16:30:45", 15
"2009-07-20 16:30:46", 8
"2009-07-20 16:30:46", 6
"2009-07-20 16:30:46", 8
"2009-07-20 16:30:47", 20
Run Code Online (Sandbox Code Playgroud)

我可以使用read.cvs将其读入R. 我想绘图:

  1. 每秒的条目数,因此:
    "2009-07-20 16:30:45", 2
    "2009-07-20 16:30:46", 3
    "2009-07-20 16:30:47", 1
    
  2. 每秒平均值:
    "2009-07-20 16:30:45", 12.5
    "2009-07-20 16:30:46", 7.333
    "2009-07-20 16:30:47", 20
    
  3. 与1和2相同,然后按分钟,然后按小时.

在R中有没有办法做到这一点(通过秒/分钟/等等和情节收集)?

Dir*_*tel 7

读取您的数据,并将其转换为zoo对象:

R> X <- read.csv("/tmp/so.csv")
R> X <- zoo(X$Count, order.by=as.POSIXct(as.character(X[,1])))
Run Code Online (Sandbox Code Playgroud)

请注意,由于非唯一时间戳,这将显示警告.

任务1使用aggregatewith length计数:

R> aggregate(X, force, length)
2009-07-20 16:30:45 2009-07-20 16:30:46 2009-07-20 16:30:47 
                  2                   3                   1 
Run Code Online (Sandbox Code Playgroud)

任务2使用aggregate:

R> aggregate(X, force, mean)
2009-07-20 16:30:45 2009-07-20 16:30:46 2009-07-20 16:30:47 
             12.500               7.333              20.000 
Run Code Online (Sandbox Code Playgroud)

任务3可以通过聚合高阶索引以相同的方式完成.您可以调用plot聚合的结果:

plot(aggregate(X, force, mean))
Run Code Online (Sandbox Code Playgroud)