我正在处理一个包含以下两列的数据帧:
time frequency
2014-01-06 13
2014-01-07 30
2014-01-09 56
我的问题是,我想计算频率为0的天数。数据使用RPostgreSQL/RSQLite进行提取,因此除非有值(即除非频率至少为1),否则没有日期时间。如果我想要统计实际上不存在于数据表中的这些日期,有没有简单的方法可以做到?例如,如果我们考虑日期范围为2014-01-01到20-14-01-10,我希望它能统计7天。
我的想法是粗暴地创建一个包含每个日期的单独数据表(请注意,这是四年以上的日期,将是一个巨大的工作量),然后合并两个数据表并计算NA值的数量。我相信一定有比我想到的更优雅的解决方案。
谢谢!
df2 <- data.frame(time= seq(as.Date('2014-01-01'), as.Date('2014-01-10'), by='day')); setkey(setDT(df1), time)[df2, sum(is.na(frequency))]#[1] 7
- akrun