【发布时间】:2015-08-23 06:09:01
【问题描述】:
我通过 SO 的 some help 清除了一个障碍,并认为下一个障碍会更容易。我真正拥有的是数据框中的开始和结束日期:
require(lubridate)
demo <- read.table(text = "
start end num
2010-12-31 <NA> 35
2013-04-01 <NA> 34
2015-06-02 <NA> 34
2015-06-15 2012-12-31 34
2015-01-30 2011-12-31 33
2014-04-15 2013-12-31 33
2014-05-28 2013-12-31 33
2014-06-02 <NA> 33
2015-06-17 <NA> 33
2015-06-25 <NA> 33
2015-06-24 <NA> 32
2013-07-31 <NA> 32
2013-08-31 <NA> 32
2015-04-27 <NA> 31
2015-05-07 <NA> 31
2013-12-30 <NA> 31
2014-11-21 <NA> 30
2013-12-20 2013-06-30 30
",header = TRUE, sep = "")
demo$start <- as.Date(demo$start, '%Y-%m-%d')
demo$end <- as.Date(demo$end, '%Y-%m-%d')
我可以使用table(year(demo$end)) 或table(year(demo$start)) 获取开始年份表或结束年份表,这是一个不错的开始。但我真正想知道的更像是:每一年,有多少开始的条目尚未结束?所以在每个开始年计算is.na()。
我以为我可以为此使用 aggregate(),但是这个:
aggregate(is.na(end) ~ year(start), demo, FUN = length)
但这似乎计算了每一次观察,而不仅仅是结束日期is.na()的观察
【问题讨论】: