我有一些计数日期的数据;其他日期,我正在计算的事件没有发生,不会出现在此数据集中。为了进行一些分析,我想创建一个包含缺少日期但计数为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)
给了我一个矢量,但不准确。
感谢您的帮助!
答案 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