操作 zoo 对象

R 中的时间序列数据处理

Harrison Brown

Graduate Researcher in Geography

无序观测

时间序列的关键属性:

  • 索引
    • 观测的顺序
    • 便于排序与比较
    • 多用日期或时间定义
unordered_dates
[1] "1985-02-15" "1977-03-01"
[3] "1970-06-10" "1971-01-16"
[5] "1973-07-28" "1976-11-24"
...
unordered_values
[1] 10.57  9.64  8.47 
[4] 9.07  9.16  9.39
R 中的时间序列数据处理

无序观测

ordered_zoo <-
 zoo(unordered_values,
     order.by = unordered_dates)

head(ordered_zoo)
1970-06-10  8.47
1971-01-16  9.07
1973-07-28  9.16
1976-11-24  9.39
1977-03-01  9.64
1982-10-12 10.04
autoplot(ordered_zoo)

"ordered_zoo" 时间序列的图;其中的取值和日期为虚构,不代表真实数据。图形总体上升,索引范围为 1970 到 1995。

R 中的时间序列数据处理

索引

zoo::index()

index(my_zoo)
[1] "2022-01-20" "2022-01-21"
[3] "2022-01-22" "2022-01-23"
[5] "2022-01-24" "2022-01-25"
...
index(my_zoo) <- new_index

head(my_zoo)
2010-01-20 4.224
2010-01-21 5.645
2010-01-22 5.919
2010-01-23 6.191
2010-01-24 6.871
2010-01-25 6.606
R 中的时间序列数据处理

核心数据

zoo::coredata()

coredata(my_zoo)
[1]  4.224 5.645 5.919
[4]  6.191 6.871 6.606
[7]  5.496 6.073 7.054 
[10] 6.849 7.291 7.064
...
coredata(my_zoo)[1] <- 30

head(my_zoo)
2022-01-20 30.000
2022-01-21  5.645
2022-01-22  5.919
2022-01-23  6.191
2022-01-24  6.871
2022-01-25  6.606
R 中的时间序列数据处理

重叠的时间序列

first_zoo
2022-08-01  4.06
2022-08-02 10.45
2022-08-03 15.43 *
2022-08-04 15.17 *
2022-08-05 19.87 *
2022-08-06 20.50 *
second_zoo
2022-08-03 15.43 *
2022-08-04 15.17 *
2022-08-05 19.87 *
2022-08-06 20.50 *
2022-08-07 18.56
2022-08-08 16.37
R 中的时间序列数据处理

重叠的时间序列

c(first_zoo, second_zoo)
Error in rbind.zoo(...) :
    indexes overlap
index(first_zoo) %in% index(second_zoo)
[1] FALSE FALSE  TRUE  TRUE  TRUE  TRUE
!index(first_zoo) %in%
  index(second_zoo)
[1]  TRUE  TRUE FALSE FALSE FALSE FALSE
R 中的时间序列数据处理

重叠的时间序列

subset <- !index(first_zoo) %in% 
            index(second_zoo)
c(first_zoo[subset], second_zoo)
2022-08-01  4.06
2022-08-02 10.45
2022-08-03 15.43
2022-08-04 15.17
2022-08-05 19.87
2022-08-06 20.50
2022-08-07 18.56
2022-08-08 16.37
R 中的时间序列数据处理

Passons à la pratique !

R 中的时间序列数据处理

Preparing Video For Download...