2016-02-24 17 views
0

我在11個月內收集了來自9次調查的許多物種的調查數據。調查跨度從12月開始到10月結束。 5月或6月沒有任何物種的數據。以下是一個簡化的例子,雖然我的數據有很多豐富的數據列。如何指定一個破損的時間序列?

as.yearmon使用從封裝動物園

require(zoo) 
month <- as.yearmon(month, "%b%y") 

一些假丰度數據

meanAbund <- rlnorm(9, 1, 1.2) 
meanAbund2 <- meanAbund + 0.5 # to have two series at least 

日期

month <- c("Dec10", "Jan11", "Feb11", "Mar11", "Apr11", "Jul11", "Aug11", "Sep11", "Oct11") 

編纂所有接合在一起

df <- cbind.data.frame(meanAbund, meanAbund2, month) 

儘管我很欣賞這個時間序列不夠長,無法進行時間序列分析,但我想指定這些數據是一個(斷開的)時間序列對象,以便圖表將打破這個序列而不是插入或忽略間隙。這應該怎麼做?

我懷疑這應該很容易,但我還沒有破解解決方案。我想要製作的東西可以在Shah,Zeileis和Grothendieck的quick reference guide的第4頁看到,但我看不到代碼告訴他們在哪個步驟中他們的例子。

我可以讀取它作爲一個時間序列對象

df.ts <- zoo(df[ , 1:2], df$month]) 

並繪製系列(最高到63,從我的實際數據集,雖然輸出是很難考慮你可能會懷疑),

plot.zoo(df.ts) 

但該系列忽略了差距。

我應該如何指定圖形或讀入這些數據,以便繪圖函數「知道」打破系列?

+1

請提供您的繪圖代碼 – HubertL

+0

@HubertL我現在編輯了我的帖子,提供了我已經制作的情節的步驟(儘管按照Pierre Lafortune的例子整理)。我可以使用'plot.ts'或多個不使用'plot.zoo'斷點的情節來獲得單個情節或多個空白情節的休息時間。現在看來是一個不同的問題或問題。 – dhd

回答

1

zoo的第二個參數允許您的數據的順序。間隙會爲您插入失蹤日期:

df 
     Date Value 
1 Jan 2005  1 
2 Feb 2005  2 
3 Mar 2005  3 
5 May 2005  5 
6 Jun 2005  6 

創建動物園的時間序列:

library(zoo) 
df.ts <- zoo(df$Value, df$Date) 

情節

ts.plot(df.ts) 

enter image description here

數據

df <- structure(list(Date = structure(c(2005, 2005.08333333333, 2005.16666666667, 
             2005.33333333333, 2005.41666666667), class = "yearmon"), Value = c(1L, 
                              2L, 3L, 5L, 6L)), .Names = c("Date", "Value"), row.names = c("1", 
                                             "2", "3", "5", "6"), class = "data.frame") 
df$Date <- as.yearmon(df$Date, "%b %Y") 
+0

您是如何最初指定df $ Date的?我試圖複製你的建議,以便理解'plot.ts'(它會識別上面示例中顯示的中斷)和'plot.zoo'之間的區別,這似乎忽略了它們。 – dhd

+1

該列必須採用公認的日期格式。查看答案 –

+0

但是,在使用'plot.zoo'時,我認爲使用公認的日期格式是不夠的,但是我應該將這部分問題的解決方案作爲單獨的帖子展示。 – dhd

相關問題