簡體   English   中英

計算任何給定日期的觀察值

[英]Count observations at any given date

我正在使用類似於以下內容的數據集:

df <- data.frame(type = c("A", "A", "A", "A", "A", "B", "B", "B", "C", "D", "D", "D"), 
                 start_date = as.Date(c("2010-02-01", "2011-03-15", "2011-09-15", "2015-01-01", "2015-05-15", "2009-01-01", "2015-07-14", "2016-06-30", "2012-01-15", "2010-04-05", "2010-08-01", "2012-04-01"), format = "%Y-%m-%d"), 
                 end_date = as.Date(c("2010-12-31", "2011-07-31", "2014-04-04", "2015-02-15", "2016-12-15", "2013-02-16", "2015-12-31", "2016-12-31", "2015-09-17", "2010-04-10", "2010-09-30", "2013-12-31"), format = "%Y-%m-%d"))

我想計算任何給定日期的觀察次數。

預期輸出

從本質上講,我希望我的結果表明只有一種type到 2010-02-01,然后兩種到 2010-04-05,然后三種到 2010-04-10 等等,即一列帶有日期(每行day) 和一列type .

date count_of_type
2009-01-01 1
2009-01-02 1
2009-01-03 1
...
2010-01-31 1
2010-02-01 2
2010-02-02 2
...
2010-04-04 2
2010-04-05 3
2010-04-06 3
2010-04-07 3
2010-04-08 3
2010-04-09 3
2010-04-10 2
2010-04-11 2
...

我認為這很容易做到,但無法弄清楚......知道嗎?

干杯,

一種選擇是transmute通過采取相應的seq由“起始日期”,“END_DATE”的uence day ,然后拿到count

library(tidyverse)
df %>% 
   transmute(date = map2(start_date, end_date, seq, by = '1 day')) %>% 
   unnest %>% 
   count(date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM