3
我對形式的data.frame:計數頻率日期
Date
2011-08-16
2011-08-17
2011-08-28
2011-09-01
2011-09-05
2011-09-06
2011-10-01
2011-10-02
2011-10-03
2011-10-04
我想要做的是,當日期的順序產生,即它們並排坐持續計數。
在上面的例子中,我們將有2,1,1,2,4
我對形式的data.frame:計數頻率日期
Date
2011-08-16
2011-08-17
2011-08-28
2011-09-01
2011-09-05
2011-09-06
2011-10-01
2011-10-02
2011-10-03
2011-10-04
我想要做的是,當日期的順序產生,即它們並排坐持續計數。
在上面的例子中,我們將有2,1,1,2,4
如何:
做重複的例子,數據:
dat <- read.table(text = "2011-08-16
2011-08-17
2011-08-28
2011-09-01
2011-09-05
2011-09-06
2011-10-01
2011-10-02
2011-10-03
2011-10-04")
獲取的運行計數連續日期使用rle
,以下this answer和this answer:
(rle (cumsum(c(0, diff(as.Date(dat$V1)) > 1))))$lengths
[1] 2 1 1 2 4
謝謝。不知道差異!雖然你不需要cumsum。 – Dave
@davewolfs我不確定你的意思是不需要'cumsum'。如果我這樣離開它:'(rle((c(0,diff(as.Date(dat $ V1))> 1))))$ lengths'然後我得到與你想要的不同的東西:'[1 ] 2 3 1 1 3' – Ben
'runs < - rle(c(1,diff(as.Date(dat $ $ Date))> 1)) table(runs $ lengths [runs $ values == 0])' – Dave