У меня есть набор данных лиц с различным числом повторных наблюдений и значения, которое иногда заполняются только в окончательном наблюдении, говорит:Засыпка в данном г
id <- c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)
order <- c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
value <- c(NA, NA, NA, 3, NA, NA, NA, 6, NA, NA, NA, 1)
x <- data.frame(id, order, value)
Где ID представляет каждый индивидуальный, порядок - порядок наблюдений (1 - это, во-первых, увеличение на 1 с последующими наблюдениями), а значение представляет собой некоторое значение, которое требует обратной засыпки (т. е. мне нужно, чтобы NA для каждого идентификатора заполнялись значением, если оно отсутствует).
Я застрял на том, как это сделать. Сначала я пытался приказывать данные:
x <- x[order(x$id, -x$order, x$value),]
Но я не мог понять, как получить код для работы, выбрав предыдущее замечание, что путь (т.е. если идентификатор = предыдущий идентификатор & значения отсутствует, взять предыдущую версию значения). Данные велики (13 м записей), и там много разных порядков (большинство из них имеют 1 наблюдение, у некоторых может быть до 10). Какой был бы лучший способ сделать это?
Возможно просто 'na.locf (значение)' 'от zoo' пакета –
Не могли бы вы предоставить решение для вашего небольшого примера. –
Также, посмотрите [здесь] (http://stackoverflow.com/questions/7735647/replacing-nas-with-latest-non-na-value) –