【问题标题】:xts::apply.weekly thinks Monday is the last day of the weekxts::apply.weekly 认为星期一是一周的最后一天
【发布时间】:2016-07-12 05:53:18
【问题描述】:

我有一个 R data.frame,每一刻钟包含一个值

    Date                  A    B
 1  2015-11-02 00:00:00   0    0  //day start
 2  2015-11-02 00:15:00   0    0
 3  2015-11-02 00:30:00   0    0
 4  2015-11-02 00:45:00   0    0
 ...
 96 2015-11-02 23:45:00   0    0 //day end
 97 2015-11-03 00:00:00   0    0 //new day 
 ...
 6  2016-03-23 01:15:00   0    0 //last record

我用xts来构造时间序列

xtsA <- xts(data$A,data$Date)

通过使用apply.daily,我得到了我期望的结果

apply.daily(xtsA, sum)    

    Date                   A
1   2015-11-02 23:45:00    400
2   2015-11-03 23:45:00    400
3   2015-11-04 23:45:00    500

apply.weekly 似乎使用星期一作为一周的最后一天

    Date                   A
19  2016-03-07 00:45:00    6500     //Monday
20  2016-03-14 00:45:00    5500     //Monday
21  2016-03-21 00:45:00    5000     //Monday

我不明白为什么它使用 00:45:00。有人知道吗?

【问题讨论】:

标签: r time-series xts zoo


【解决方案1】:

数据是从 CSV 文件导入的,日期列如下所示:

data <- read.csv("...", header=TRUE)

    Date            A
1   151102 0000     0
...

错误在于日期时间解释和使用

data$Date <- as.POSIXct(strptime(data$Date, "%y%m%d %H%M"), tz = "GMT") 

解决了,现在apply.weekly 返回

     Date                   A
1    2015-11-08 23:45:00    3500 //Sunday
2    2015-11-15 23:45:00    4000 //Sunday
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多