2017-09-13 64 views
1

我想知道是否有人從統計軟件包知道R的時間序列可以幫助我。R的時間序列會自動生成缺失的數據嗎?

我目前正在使用stat的ts函數生成時間序列。

我傳遞了ts函數的一個數據集(每年有3年的日期和數值),已經解析爲十進制日期的開始和結束日期以及頻率爲365. 但是,某些日期範圍缺失(例如,2016年4月30日至2017年1月2日的日期和值不見了)。

但是,當我查看或繪製時間序列時,我發現缺少的數據會自動填充值。

我不確定這些值是如何生成的。

時間序列函數是否自動使用其數據填入缺失日期?

感謝您的幫助,
周杰倫

編輯:我的原始數據幀的一部分 例子:
(你可以看到有丟失的數據,從2016年4月30日至2017-01- 02)

Dataframe: 
      date   pieceVolume 
... |  ...  |  ... 
615 | 2016-04-29 | 250.5 
616 | 2016-04-30 | 1230.4 
617 | 2017-01-02 | 273.2 
618 | 2017-01-01 | 26150.5 
619 | 2017-01-02 | 232550.7 

我原來的數據幀有655行,但我的時間系列擁有的1079
的長度這是怎麼了,我從數據幀生成時間序列我:

sts <- ts(test_data$pieceVolume, start=decimal_date(min(as.Date(test_data$date))), end=decimal_date(max(as.Date(test_data$date))), frequency=365) 

我原來的代碼:

original_data <- readRDS("original_data.rds") 
library(plyr) 
## Using ddply to average all the pieceVolumes that have the same dates. 
test_data <- plyr::ddply(original_data, .(date), function(x) c(pieceVolume=mean(x$pieceVolume))) 
library("forecast") 
## Generate time-series using test_data 
sts <- ts(test_data$pieceVolume, start=decimal_date(min(as.Date(test_data$date))), end=decimal_date(max(as.Date(test_data$date))), frequency=365) 
+0

嗯,你刪除NA的,當你加載數據?可以添加一些數據到你的問題?你確定這些日期沒有完全刪除嗎?你檢查了原始集合的長度與轉換的時間序列集合的長度嗎? – DataTx

+0

@DataTx沒有NAs。缺失的數據完全丟失(缺失日期根本沒有行) – Jay

+0

它可能不會繪製缺失日期。用'length(df $ timeseries)'或者'dim'來檢查時間系列的長度。如果它小於365,那麼缺少日期沒有任何標繪 – DataTx

回答

0

嘗試

sts<- ts(test_data$pieceVolume) 
+0

看來,當我生成時間序列時,有些東西會自動爲我插入數據。它會自動生成缺失的日期,儘管我沒有做任何事情來插入它。我想知道如果ts函數自動插入它爲我。 – Jay

+0

請解釋您的代碼與OP的不同之處,以及如何解決問題或回答問題。我建議這個指南創建一個有用的答案stackoverflow.com/help/how-to-answer –