我正在处理时间序列问题。这是我的数据的一部分:
head(Dataset)
Project Date Budget
PR1 September 2015 0.2
PR1 October 2015 0.5
PR1 November 2015 0.9
PR1 December 2015 1.2
PR1 January 2016 1.8
PR2 August 2015 1.5
PR2 September 2015 1.9
PR2 October 2015 2.3
PR2 December 2015 2.5
PR2 January 2016 2.8
我有每个项目和每个月预算的演变,我想将每个项目的预算演变成时间序列,以便进行分类。 我怎样才能做到这一点 ?
非常感谢
答案 0 :(得分:1)
这会将末尾“注释”中的输入转换为多元时间序列z。
library(zoo)
z <- read.zoo(DF, index = "Date", FUN = as.yearmon, format = "%B %Y",
split = "Project")
给予这个动物园对象:
> z
PR1 PR2
Aug 2015 NA 1.5
Sep 2015 0.2 1.9
Oct 2015 0.5 2.3
Nov 2015 0.9 NA
Dec 2015 1.2 2.5
Jan 2016 1.8 2.8
as.ts(z)
可用于获取ts
对象。
这不是时间序列对象,但是如果您想要一个带有顶部/年份/月份的宽格式对象,则:
library(zoo)
DF0 <- transform(DF, Date = format(as.yearmon(Date, "%B %Y"), "%Y-%m"))
xtabs(Budget ~ Project + Date, DF0)
提供此xtabs表:
Date
Project 2015-08 2015-09 2015-10 2015-11 2015-12 2016-01
PR1 0.0 0.2 0.5 0.9 1.2 1.8
PR2 1.5 1.9 2.3 0.0 2.5 2.8
Lines <- "Project,Date,Budget
PR1,September 2015,0.2
PR1,October 2015,0.5
PR1,November 2015,0.9
PR1,December 2015,1.2
PR1,January 2016,1.8
PR2,August 2015,1.5
PR2,September 2015,1.9
PR2,October 2015,2.3
PR2,December 2015,2.5
PR2,January 2016,2.8"
DF <- read.csv(text = Lines, strip.white = TRUE)