R 如何将不同的组转换为时间序列
我正在处理一个时间序列问题。以下是我的数据摘录:R 如何将不同的组转换为时间序列,r,time-series,R,Time Series,我正在处理一个时间序列问题。以下是我的数据摘录: 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
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
我有每个项目和每个月的预算演变,我想将每个项目的预算演变转化为时间序列,以便进行分类。
我该怎么做
非常感谢这将注释末尾的输入转换为多变量时间序列z
library(zoo)
z <- read.zoo(DF, index = "Date", FUN = as.yearmon, format = "%B %Y",
split = "Project")
as.ts(z)
可用于获取ts
对象(如果需要)
广泛形式
这不是一个时间序列对象,但如果您想要一个宽格式的对象,顶部带有年/月,则:
library(zoo)
DF0 <- transform(DF, Date = format(as.yearmon(Date, "%B %Y"), "%Y-%m"))
xtabs(Budget ~ Project + Date, DF0)
笔记
行您想要哪个固定周期?实际上,你的日期栏中有一个时间序列。我想表示直到今天的演变,我的数据从2009年开始。我想代表每个项目的时间序列,这可能吗?这取决于每个项目的数量。
library(zoo)
DF0 <- transform(DF, Date = format(as.yearmon(Date, "%B %Y"), "%Y-%m"))
xtabs(Budget ~ Project + Date, DF0)
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)