2013-11-16 4 views

ответ

8

Вы можете использовать na.locf из "зоопарка" пакет:

library(zoo) 
na.locf(mydf, fromLast=TRUE) 
#  X  Y 
# 1 0.0122 0.027 
# 2 0.0121 0.027 
# 3 0.0121 0.027 
# 4 0.0121 0.027 
# 5 0.0121 0.028 
# 6 0.0121 0.028 
# 7 0.0121 0.028 

Где "mydf" является:

mydf <- structure(list(X = c(0.0122, 0.0121, 0.0121, 0.0121, 0.0121, 
    0.0121, 0.0121), Y = c(NA, NA, 0.027, 0.027, 0.028, 0.028, 0.028)), 
    .Names = c("X", "Y"), class = "data.frame", row.names = c(NA, -7L)) 

mydf 
#  X  Y 
# 1 0.0122 NA 
# 2 0.0121 NA 
# 3 0.0121 0.027 
# 4 0.0121 0.027 
# 5 0.0121 0.028 
# 6 0.0121 0.028 
# 7 0.0121 0.028 
+0

Поскольку других методов нет, достаточно использовать 'na.locf'. – Roland

+0

@ Роланд, отредактированный ... и спасибо за повторное открытие. – A5C1D2H2I1M1N2O1R2T1

4

Вот решение в базе R. Если dat это имя ваших данных раму, вы можете попробовать:

within(dat, Y[is.na(Y)] <- na.omit(Y)[1]) 
Смежные вопросы