如何添加不在数量为0的数据框中的日期?

时间:2013-12-15 02:48:18

标签: r

我有一些计数日期的数据;其他日期,我正在计算的事件没有发生,不会出现在此数据集中。为了进行一些分析,我想创建一个包含缺少日期但计数为0的数据框。以下是一些数据的样子:

mydates <- c("2013-10-01", "2013-10-04", "2013-10-05", "2013-10-08")
mycounts <- c(2,4,3,1)
df <- data.frame(mydates,mycounts)

我知道如何使用所有日期创建一个矢量:

alldates <- seq.Date(as.Date("2013-10-01"), as.Date("2013-10-08"), "days")

我想要做的是检查df $ mydates中是否存在alldates中的每个项目;如果是,则使用新向量中数据帧的相应计数,如果不是,则使用0作为新向量中的计数。但我运气不好。例如,这个

mycount&lt; - ifelse(在%df $ mydates中显示%,df $ mycounts,0)

给了我一个矢量,但不准确。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

mydates <- c("2013-10-01", "2013-10-04", "2013-10-05", "2013-10-08")
mycounts <- c(2,4,3,1)
df <- data.frame(mydates,mycounts)

alldates <- data.frame(
  mydates = seq.Date(as.Date("2013-10-01"), as.Date("2013-10-08"), "days")
)

merge(
  alldates,
  df,
  all = TRUE
)

输出 -

      mydates mycounts
1  2013-10-01       NA
2  2013-10-01        2
3  2013-10-02       NA
4  2013-10-03       NA
5  2013-10-04       NA
6  2013-10-04        4
7  2013-10-05       NA
8  2013-10-05        3
9  2013-10-06       NA
10 2013-10-07       NA
11 2013-10-08       NA
12 2013-10-08        1