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年内得到事故总数的每个月。
我有一个包含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年内得到事故总数的每个月。
好像你只是想计算行每个月的数量,如果是的话你可以用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
tapply(dfrm$no, sub(".+-(.+)-.+", "\\1", dfrm$date), sum, na.rm=TRUE)
月份和年份在MM-YYYY格式以此为你的分类代码:
.... , sub("(.+)-(.+)-.+", "\\2-\\1", data$date) , ....
好的,这是一个好的开始。尽管我需要月份和年份。总计1-2004,2-2004,... 1-2009,2-2009。然后将总计作为变量存储(我可能会想到这一点)。 – chilland
不知道你也想多年,我为你编辑了解决方案。 – David
好的最后一个问题,任何方式来格式化它作为日期,而不是一个因素,以便我可以按年分类,而不是按字母顺序将它放在数据框中?现在当我使用as.date()时,我只是得到了NAs。 – chilland