2013-06-01 3 views
2

Мои данные имеют этот формат и кадр с именем экс:заполняя определенную колонку в dataframe

Day     value1   value2 
12-12-2012 00:00:00 1     1 
12-12-2012 00:00:02 NA    2 
12-12-2012 00:00:03 1     NA 
12-12-2012 00:00:04 NA    4 
12-12-2012 00:00:00 2     1 
12-12-2012 00:00:02 NA    2 
12-12-2012 00:00:03 2     NA 
12-12-2012 00:00:04 NA    4 

Выход я хочу это:

Day     value1   value2 
12-12-2012 00:00:00 1     1 
12-12-2012 00:00:02 1     2 
12-12-2012 00:00:03 1     NA 
12-12-2012 00:00:04 1     4 
12-12-2012 00:00:00 2     1 
12-12-2012 00:00:02 2     2 
12-12-2012 00:00:03 2     NA 
12-12-2012 00:00:04 2     4 

Что я пробовал:

fl = na.locf(ex$value1) 

Однако проблема в том, что удалить значение2. Как я могу использовать na.locf в определенном столбце в кадре с несколькими столбцами с удалением их?

+0

locf - предыдущее значение –

ответ

2
require(zoo) 

dat <- read.table(text=" 
Day     value1   value2 
12-12-2012 00:00:00 1     1 
12-12-2012 00:00:02 NA    2 
12-12-2012 00:00:03 1     NA 
12-12-2012 00:00:04 NA    4 
12-12-2012 00:00:00 2     1 
12-12-2012 00:00:02 NA    2 
12-12-2012 00:00:03 2     NA 
12-12-2012 00:00:04 NA    4",header=TRUE, row.names=NULL) 

dat$value1 <- na.locf(dat$value1) 
1

Я попытался воспроизвести вашу проблему, но для меня вы предложили решение, как хотите.

> require(zoo) 
> ex <-data.frame(
    Day =c("12-12-2012 00:00:00","12-12-2012 00:00:02","12-12-2012 00:00:03","12-12-2012 00:00:04","12-12-2012 00:00:00","12-12-2012 00:00:02","12-12-2012 00:00:03","12-12-2012 00:00:04"), 
    value1 = c(1,NA,1,NA,2,NA,2,NA), 
    value2 = c(1,2,3,4,1,2,3,4)) 
> fl = na.locf(ex) 
> fl 
        Day value1 value2 
1 12-12-2012 00:00:00  1  1 
2 12-12-2012 00:00:02  1  2 
3 12-12-2012 00:00:03  1  3 
4 12-12-2012 00:00:04  1  4 
5 12-12-2012 00:00:00  2  1 
6 12-12-2012 00:00:02  2  2 
7 12-12-2012 00:00:03  2  3 
8 12-12-2012 00:00:04  2  4 

Возможно, что-то еще не так?

Смежные вопросы