Внесение отсутствующих дат по позиции с помощью R

У меня есть набор данных из 21840 наблюдений для 6 переменных, и одна из последних представляет собой простой столбец «дата» с кучей пропущенных значений. Для целей моего проекта мне нужно было бы вменять НП на основе позиции.

Например, у меня могло быть:

  • 25/01/1990
  • NA
  • 27/01/1990

Учитывая, что даты упорядочены, NA: 25.01.1990, 26.01.1990 или 27.01.1990 (у меня может быть несколько обследований в день, без проблем!). Есть ли способ воспроизвести это рассуждение простым и автоматическим способом?

Я пробовал с «мышами» рассматривать финики как фактор, но это не сработало!

Спасибо!

Код прилагается:

library(mice)
init = mice(dat, maxit=0) 
meth = init$method
predM = init$predictorMatrix


meth[c("date")]="polr"

set.seed(103)
imputed = mice(dat, method=meth, predictorMatrix=predM, m=5)

person The_Car_a_Carn    schedule 08.01.2018    source источник
comment
Какой код вы пробовали до сих пор?   -  person Zach    schedule 08.01.2018
comment
Если даты упорядочены, как вы получите 27.01.1990 между 25.01.1990 и 26.01.1990?   -  person Matt Hogan-Jones    schedule 08.01.2018
comment
Исправлено, извините за опечатку   -  person The_Car_a_Carn    schedule 08.01.2018


Ответы (1)


Попробуйте na.approx:

library(zoo)

x <- as.Date(c("25/01/1990", NA, "27/01/1990"), format = "%d/%m/%Y")
as.Date(na.approx(x))

давая:

[1] "1990-01-25" "1990-01-26" "1990-01-27"
person G. Grothendieck    schedule 08.01.2018