Chuyển đổi giữa zoo và data frame

Xử lý Dữ liệu Chuỗi Thời gian trong R

Harrison Brown

Graduate Researcher in Geography

Chuyển đổi giữa data frame và đối tượng zoo

Sơ đồ khái niệm về chuyển đổi giữa data frame và chuỗi thời gian trong R. Bên trái là mô hình data frame với hai cột: một cho dữ liệu thời gian và một cho biến 'x'. Bên phải là chuỗi thời gian, biểu diễn bằng đồ thị. Trục x có biểu tượng đồng hồ, tham chiếu dữ liệu thời gian từ data frame. Trục y là biến 'x' từ data frame. Có mũi tên hai chiều giữa hai sơ đồ.

Xử lý Dữ liệu Chuỗi Thời gian trong R

data.frame so với zoo

data.frame:

  • Mỗi biến là một cột
  • Chỉ mục lưu trong một cột
    • ví dụ: data$dates
  • Chỉ hỗ trợ geom_*():
ggplot(example_dataframe,
       aes(x = dates, y = values)) + 
  geom_line()

zoo:

  • Mỗi biến là một cột của ma trận
  • Chỉ mục lưu trong thuộc tính
    • ví dụ: index(data)
  • geom_*()autoplot():
ggplot(maunaloa,
       aes(x = Index, y = maunaloa)) + 
  geom_line()
# Or...
autoplot(maunaloa)
Xử lý Dữ liệu Chuỗi Thời gian trong R

Từ data frame sang zoo

head(prices)
        date       value
1 2013-01-01        4.88
2 2013-01-02        5.03
3 2013-01-03        5.11
4 2013-01-04        4.77
5 2013-01-05        5.04
6 2013-01-06        5.05

my_dataframe$my_column

prices_zoo <-
    zoo(x = prices$value,
        order.by = prices$date)
prices_zoo
2013-01-01 4.88
2013-01-02 5.03
2013-01-03 5.11
2013-01-04 4.77
2013-01-05 5.04
2013-01-06 5.05
Xử lý Dữ liệu Chuỗi Thời gian trong R

Fortify một đối tượng zoo

data_df <-
  data.frame(index(my_zoo),
             coredata(my_zoo))

zoo::fortify.zoo()

fortify.zoo(my_zoo)
  Index    var1   var2   var3   var4
1     1 1628.75 1678.1 1772.8 2443.6
2     2 1613.63 1688.5 1750.5 2460.2
3     3 1606.51 1678.6 1718.0 2448.2
4     4 1621.04 1684.1 1708.1 2470.4
5     5 1618.16 1686.6 1723.1 2484.7
6     6 1610.61 1671.6 1714.3 2466.8
...
Xử lý Dữ liệu Chuỗi Thời gian trong R

Ayo berlatih!

Xử lý Dữ liệu Chuỗi Thời gian trong R

Preparing Video For Download...