我有月度数据框(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
答案 0 :(得分:1)
我知道重塑或融化可能是“正确”的方式,但是使用您的数据很容易伪造它,因为列是连续的。
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
答案 1 :(得分:0)
您可以尝试使用stn2 <- reshape2::melt(stn, id.vars = Year)
的组合,然后使用此结果merge(stn2,masteryearlist,all=TRUE)
,其中masteryearlist
是您可以手动创建的内容。