【发布时间】:2019-05-14 11:58:50
【问题描述】:
我有以下数据,
id <- c(rep(12, 10), rep(14, 12), rep(16, 2))
m <- c(seq(1:5), seq(8,12), seq(1:12), 10, 12)
y <- c(rep(14, 10), rep(14, 12), rep(15, 2))
v <- rnorm(24)
df <- data.frame(id, m, y, v)
> df
id m y v
1 12 1 14 0.9453216
2 12 2 14 1.0666393
3 12 3 14 -0.2750527
4 12 4 14 1.3264349
5 12 5 14 -1.8046676
6 12 8 14 0.3334960
7 12 9 14 -1.2448408
8 12 10 14 0.5258248
9 12 11 14 -0.1233157
10 12 12 14 1.4717530
11 14 1 14 0.6217376
12 14 2 14 -0.8344823
13 14 3 14 1.1468841
14 14 4 14 -0.3363987
15 14 5 14 -1.3543311
16 14 6 14 -0.2146853
17 14 7 14 -0.6546186
18 14 8 14 -2.4286257
19 14 9 14 -1.3314888
20 14 10 14 0.8215581
21 14 11 14 -0.9999368
22 14 12 14 -1.2935147
23 16 10 15 0.7339261
24 16 12 15 1.1303524
第一列是id,第二列m是月份,第三列y是年份,最后一列是值。
在月份列中,第 14 年缺少两个观测值(6 月和 7 月),而第 15 年则缺少 11 月。
我希望那些缺失的月份的值为零。这意味着,例如,对于第 15 年,数据应如下所示,
16 10 15 0.7339261
16 11 15 0
16 12 15 1.1303524
任何人都可以提出一种方法来做到这一点?
【问题讨论】:
标签: r data.table tidyverse