簡體   English   中英

我可以在 R 中指定時間序列的日期和時間嗎?

[英]Can I specify the dates and times of a time series in R?

我有一個數據集,第一列包含時間和日期,第二列包含股票價格。

我使用了以下格式。

      Time              Price
2015-02-01 10:00         50

我想把它變成一個時間序列對象。 我嘗試了 ts(data) 函數,但是當我繪制數據時,我無法觀察 x 軸上的日期。 我也嘗試了 ts(data, start=) 函數。 因為我有一些時間缺少價格,而這些時間不包含在我的數據集中,所以如果我設置開始日期和頻率,我的情節就會產生誤導。

這是我擁有的示例數據。 它被稱為df。

           time         price    

1   2013-05-01 00:00:00 124.30
2   2013-05-01 01:00:00 98.99
3   2013-05-01 02:00:00 64.00
4   2013-05-01 03:00:00 64.00

這是我使用的代碼

Time1 <- ts(df) 
autoplot(Time1)

也試過這個,

Time1 <- zoo(Time_series_data[,2], order.by = Time_series_data[,1])
Time_n <- ts(Time1)
autoplot(Time1)

但是,當我使用 autoplot(Time1) 繪制圖形時,x 軸不顯示我指定的時間,而是從 0 到 4 的數字。我想要繪制一個 ts 對象的圖,其中包括 x- 中的日期列Y 軸和值

有什么方法可以將它轉換為 R 中的時間序列對象。謝謝。

嘗試以下操作:

使用tibble包中漂亮的tribble函數創建一些數據。

library(tibble)
df <- tribble(~time,      ~price,
   "2013-05-01 00:00:00", 124.30,
   "2013-05-01 01:00:00", 98.99,
   "2013-05-01 02:00:00", 64.00,
   "2013-05-01 03:00:00", 64.00)

time列是一個字符類,不能以通常的方式繪制。 所以使用as.Posixct轉換它。 我將在這里使用dplyr包,但這是可選的。

library(dplyr)

df <- df %>%
  mutate(time=as.POSIXct(time))

接下來,將數據轉換為時間序列對象。 這需要xts包,盡管我確信還有其他選項,包括zoo

library(xts)
df.ts <- xts(df[, -1], order.by=df$time)

現在您可以可視化數據。

plot(df.ts)  # This should call the `plot.xts` method

如果你更喜歡ggplot2

library(ggplot2)
autoplot(df.ts)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM