我有一个数据集,包括年份和月份的情况。有些月份不见了,我想创建这些月份的案例数为零的行。如何有效地使用R添加0个案例的摘要行?
这里是一个例子,以及我目前的蛮力方法。感谢任何指针。很显然,我是这个新手。
# fake data
library(plyr)
rm(FakeData)
FakeData <- data.frame(DischargeYear=c(rep(2010, 7), rep(2011,7)),
DischargeMonth=c(1:7, 3:9),
Cases=trunc(rnorm(14, mean=100, sd=20)))
# FakeData is missing data for some year/months
FakeData
# Brute force attempt to add rows with 0 and then total
for(i in 1:12){
for(j in 1:length(unique(FakeData$DischargeYear))){
FakeData <- rbind(FakeData, data.frame(
DischargeYear=unique(FakeData$DischargeYear)[j],
DischargeMonth=i,
Cases=0))
}
}
FakeData <- ddply(FakeData, c("DischargeYear","DischargeMonth"), summarise, Cases=sum(Cases))
# FakeData now has every year/month represented
FakeData
谢谢,我知道一定有办法。为了完整性,我需要用0替换NA,所以我认为答案是: FakeData < - merge(allMonths,FakeData,all.x = TRUE) FakeData $ Cases [is.na(FakeData $ Cases )] < - 0 – JIm
你实际上可以简化一下。我更新了我的答案。 – Charlie