Я пытаюсь добавить пропущенные строки для «дня» и экстраполировать данные для «значения». В моих данных каждый субъект («id») имеет 2 периода (период 1 и период 2) и значения для последовательных дней.
Пример моих данных выглядит следующим образом:
df <- data.frame(
id = c(1,1,1,1, 1,1,1,1, 2,2,2,2, 2,2,2,2, 3,3,3,3, 3,3,3,3),
period = c(1,1,1,1, 2,2,2,2, 1,1,1,1, 2,2,2,2, 1,1,1,1, 2,2,2,2),
day= c(1,2,4,5, 1,3,4,5, 2,3,4,5, 1,2,3,5, 2,3,4,5, 1,2,3,4),
value =c(10,12,15,16, 11,14,15,17, 13,14,15,16, 15,16,18,20, 16,17,19,29, 14,16,18,20))
Для каждого идентификатора и периода я пропускаю данные за дни 3,2,1,4,1,5 соответственно. Я хочу расширить данные, скажем, до 10 дней, и экстраполировать данные по столбцу значений (например, с линейной регрессией).
Мой конечный df должен быть примерно таким:
df2 <- data.frame(
id = c(1,1,1,1,1,1,1, 1,1,1,1,1,1,1, 2,2,2,2,2,2,2, 2,2,2,2,2,2,2, 3,3,3,3,3,3,3, 3,3,3,3,3,3,3),
period = c(1,1,1,1,1,1,1, 2,2,2,2,2,2,2, 1,1,1,1,1,1,1, 2,2,2,2,2,2,2, 1,1,1,1,1,1,1, 2,2,2,2,2,2,2),
day= c(1,2,3,4,5,6,7, 1,2,3,4,5,6,7, 1,2,3,4,5,6,7, 1,2,3,4,5,6,7, 1,2,3,4,5,6,7, 1,2,3,4,5,6,7),
value =c(10,12,13,15,16,17,18, 11,12,14,15,17,18,19, 12,13,14,15,16,18,22, 15,16,18,19,20,22,23, 15,16,17,19,29,39,49, 14,16,18,20,22,24,26))
наиболее похожий пример , который я обнаружил, не экстраполирует на две переменные (ID и точка в моем случае), он экстраполирует только на год. Я попытался адаптировать код, но безуспешно: (
Другой пример экстраполирует данные по нескольким идентификаторам, но не добавляет строки для пропущенных данных.
Я не смог ' я могу объединить оба кода с моим ограниченным опытом в R. Есть предложения? Заранее спасибо ...