![](/img/trans.png)
[英]How to get years from a time series index when the underlying time series is of monthly freq?
[英]How to create a monthly time series with missing years?
我有每月數據幀(stn),我想將其轉換為單列(日期與降雨)時間序列動物園對象,因為它缺少年份。 我想對動物園包裹做一些分析。 有什么幫助嗎?
> head(stn)
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 1990 79.6 168.6 122.6 161.9 0.0 0 0 0 0 0.0 11.2 45.4
2 1991 155.6 173.9 163.2 37.4 0.0 0 0 0 0 0.0 0.0 47.2
3 1995 97.7 84.9 117.1 0.0 3.6 0 0 0 0 0.4 0.0 99.8
4 1996 188.8 155.9 214.3 25.3 0.0 0 0 0 0 0.0 0.0 134.3
5 1997 37.3 202.1 24.4 21.4 39.0 0 0 0 0 0.0 120.2 372.1
6 1998 209.4 175.1 117.4 135.4 5.2 0 0 0 0 0.0 0.0 0.0
我知道重塑或熔化可能是“正確”的方法,但是對於您的數據,由於列是連續的,因此很容易偽造它。
require(zoo)
stn2 <- stn[,-1] # Extracts everything but the Year column
stn2 <- as.vector(t(stn2)) # Turns your matrix into one long vector
date <- apply( # Make a date column with a character vector.
cbind(
rep( stn$Year,each=12 ),
rep( 1:12, times=length(stn$Year) )
), 1, paste, collapse="-" )
date <- as.yearmon(date, "%Y-%m") # Convert it to a yearmon object
stn2 <- data.frame("Date" = date, "Rain" = stn2) # Make a data frame
您可以嘗試使用stn2 <- reshape2::melt(stn, id.vars = Year)
,然后使用此結果merge(stn2,masteryearlist,all=TRUE)
,其中masteryearlist
是可以手動創建的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.