/ / wypełnianie konkretnej kolumny w ramce danych - r

wypełnianie konkretnej kolumny w ramce danych - r

Moje dane mają ten format i ramka o nazwie ex:

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

Wynik, który chcę, to:

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

Co próbowałem:

fl = na.locf(ex$value1)

Jednak problem polega na usunięciu wartości 2. Jak mogę użyć na.locf w określonej kolumnie w ramce z wieloma kolumnami, aby je usunąć?

Odpowiedzi:

2 dla odpowiedzi № 1
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 dla odpowiedzi nr 2

Próbowałem odtworzyć twój problem, ale dla mnie sugerujesz, że rozwiązanie działa tak, jak chcesz.

> 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

Może coś jeszcze jest nie tak?