[英]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.