2013-11-01 65 views
2

我有一个包含34个变量和25,000个观察值的数据集。每个观察都是指特定事件。它的格式是这样的:按月计算观察次数/频率

no id date   .... 
1 363 006 2005-11-05 
2 939 012 2007-01-23 
3 541 090 2009-06-14 

我想知道,如果有人能够引导我如何通过包含在该数据集5年内得到事故总数的每个月。

回答

5

好像你只是想计算行每个月的数量,如果是的话你可以用table()

> #make junk data 
> data <- data.frame(no=rnorm(100),id=rnorm(100),date=seq(Sys.Date()-99,Sys.Date(),by="day")) 
> table(format(data$date,"%b-%Y")) 
Aug-2013 Jul-2013 Nov-2013 Oct-2013 Sep-2013 
     31  7  1  31  30 
+0

好的,这是一个好的开始。尽管我需要月份和年份。总计1-2004,2-2004,... 1-2009,2-2009。然后将总计作为变量存储(我可能会想到这一点)。 – chilland

+0

不知道你也想多年,我为你编辑了解决方案。 – David

+0

好的最后一个问题,任何方式来格式化它作为日期,而不是一个因素,以便我可以按年分类,而不是按字母顺序将它放在数据框中?现在当我使用as.date()时,我只是得到了NAs。 – chilland

0
tapply(dfrm$no, sub(".+-(.+)-.+", "\\1", dfrm$date), sum, na.rm=TRUE) 

月份和年份在MM-YYYY格式以此为你的分类代码:

.... , sub("(.+)-(.+)-.+", "\\2-\\1", data$date) , ....