У меня есть фрейм данных, содержащий три столбца: ID, год, рост . Последний содержит данные о росте в миллиметрах за каждый год.
Пример:
df <- data.frame(ID=rep(c("CHC01", "CHC02", "CHC03"), each=6),
year=rep(2013:2018, 3),
growth=c(NA, NA, NA, 2.3, 2.1, 3.0, NA, NA, NA, NA, 1.1, 4.8, 1.0, 3.2, 4.2, 2.3, 2.1, 1.2))
В другом кадре данных у меня есть три других столбца: ID, missing_length, missing_years . Недостающая длина относится к расчетной длине, пропущенной в измерениях. Пропущенные годы относятся к числу пропущенных лет в df
estimate <- data.frame(ID=c("CHC01", "CHC02", "CHC03"),
missing_length=c(1.0, 4.4, 0),
missing_years=c(1,3,0))
Для расчета роста для каждого пропущенного года я попытался:
missing <- rep(estimate$missing_length / estimate$missing_years, estimate$missing_years)
Это важно отметить, что не все NA с df будут заменены оценочными значениями.
Вот пример фрейма данных, который я пытаюсь получить:
ID year growth
1 CHC01 2013 NA
2 CHC01 2014 NA
3 CHC01 2015 1.00
4 CHC01 2016 2.30
5 CHC01 2017 2.10
6 CHC01 2018 3.00
7 CHC02 2013 NA
8 CHC02 2014 1.47
9 CHC02 2015 1.47
10 CHC02 2016 1.47
11 CHC02 2017 1.10
12 CHC02 2018 4.80
13 CHC03 2013 1.00
14 CHC03 2014 3.20
15 CHC03 2015 4.20
16 CHC03 2016 2.30
17 CHC03 2017 2.10
18 CHC03 2018 1.20
Кто-нибудь знает, как решить эту проблему?
Большое спасибо!