如何完成缺少年份和空值的时间序列?

How to complete time series with missing years and null values?

我正在处理时间数据。
数据包括与年份相关的频率值。

data <- data.frame(year = c(1789,1791, 1795),
               Freq =  c(12, 56, 67)) 

我的问题: 有些年份不见了。
我的预期:
我希望在我的 data.frame 中添加缺失的年份,其中包含空值(使用 dplyr 或 base)

year Freq
1 1789    12
2 1790    0
3 1791    56
4 1792    0
5 1793    0
6 1794    0
7 1795    67

我的想法:创建一个 table 包含所有年份(包括零值),并将其与我的数据合并 ...

data2 <- data.frame (year = c(1789:1795), Freq = rep(0, 7))

你的想法很有道理。这种使用 plyr 的方法可行:

df1 <- join(data.frame(year = 1789:1795), df)  #Left join df years to all years 
df1[is.na(df1$Freq), "Freq"] <- 0              #Set NA to 0

使用 dplyr 和 left_join 的方法:

 library(dplyr)

 data <- data.frame(year = c(1789,1791, 1795),
               Freq =  c(12, 56, 67)) 


 data2 <- data.frame (year = c(1789:1795)) # , Freq = rep(0, 7)



 all<- left_join(data2, data)

 all