如何使用某些列作为参考在数据框中添加缺失的行(用 0 填充)?

How do I add missing rows (filled with 0's) in a data frame using some column as reference?

我有这个(大)数据框,我想添加与名为 "date".

的列相关的缺失行(填充为 0)

例如:

date    0        1         2          3         4         5
199807  0       546.98     19355.55   1110.6    4720.34   3435.9
199808  0       1668.85    4398.29    5816.71   599.7     535.28
199809  608.79  446.68     2297.68    1862.64   415.6     933.46
199811  0       0          1366.59    1337.01   0         711.59
199812  0       0          601.8      2079.9    2030.24   368.44
199901  0       1462.8     0          552.78    0         0
199903  0       621.2      2242       753.36    0         0

我想要这样:

date    0        1        2            3         4          5
199807  0        546.98   19355.55     1110.6    4720.34    3435.9
199808  0        1668.85  4398.29      5816.71   599.7      535.28
199809  608.79   446.68   2297.68      1862.64   415.6      933.46
199810  0        0        0            0         0          0
199811  0        0        1366.59      1337.01   0          711.59
199812  0        0        601.8        2079.9    2030.24    368.44
199901  0        1462.8   0            552.78    0          0
199902  0        0        0            0         0          0
199903  0        621.2    2242         753.36    0          0

非常感谢

可以这样操作:

1) 创建一个占位符数据集,在所有其他列中包含所有日期和零

2) 对于原始数据集中的日期,将原始数据中的值写入占位符数据集中

# Create a placeholder dataset, including all dates, 0 at all other columns
df <- data.frame(date = c(199801:199812, 199901:199912),
                 `1` = 0, `2` = 0, `3` = 0, check.names = FALSE)

# create the dataset with some data (this will be the 'original' dataset)
df2 <- data.frame(date = c(199807:199809, 199811:199812, 199901:199903),
                  `1` = rnorm(8), `2` = rnorm(8), `3` = rnorm(8), check.names = FALSE)

# write data from original dataset to placeholder dataset
df[df$date %in% df2$date,] <- df2