У меня есть следующие данные,
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
Первый столбец - это идентификатор, второй столбец m
- это месяц, третий столбец y
- это год, а последний столбец - это значение.
В столбце месяца в 14-м году отсутствуют два наблюдения (июнь и июль), а в 15-м году - ноябрь.
Я бы хотел, чтобы эти пропущенные месяцы имели нулевое значение. Это означает, что, например, для 15-го года данные должны выглядеть следующим образом:
16 10 15 0.7339261
16 11 15 0
16 12 15 1.1303524
Кто-нибудь может предложить способ сделать это?