我有以下数据,包含日期和计数。请帮助改变这一行,其中几个月是列。行是每年的数据
Date count
=================
2011-01-01 10578
2011-02-01 9330
2011-03-01 10686
2011-04-01 10260
2011-05-01 10032
2011-06-01 9762
2011-07-01 10308
2011-08-01 9966
2011-09-01 10146
2011-10-01 10218
2011-11-01 8826
2011-12-01 9504
to
JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
------------------------------------------------------------------------------
2011 10578 9330 10686 10260 10032 9762 10308 9966 10146 10218 8826 9504
2012 ....
答案 0 :(得分:2)
对于R base中的ts
来说,这是一项完美的任务。假设您的data.frame为x
,那么使用ts
将生成您想要的输出。
> ts(x$count, start=c(2011,01,01), end=c(2011,12,01), frequency=12)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011 10578 9330 10686 10260 10032 9762 10308 9966 10146 10218 8826 9504
答案 1 :(得分:1)
如果您的数据位于x
,请尝试以下操作:
library(reshape2)
res <- dcast(transform(x, month = format(Date, format="%m"),
year = format(Date, "%Y")),
year ~ month, value.var="count")
rownames(res) <- res$year
res <- res[,-1]
names(res) <- toupper(month.abb[as.numeric(names(res))])
res
这假设x$Date
已经是日期。如果没有,您需要先转换为日期:
x$Date <- as.Date(x$Date)