3

私のデータはこの形式で、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

私が望む出力は次のとおりです。

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)

ただし、問題は value2 を削除することです。複数の列を削除してフレーム内の特定の列で na.locf を使用するにはどうすればよいですか?

4

2 に答える 2

3
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)
于 2013-06-01T19:10:56.620 に答える
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

おそらく何か他のものが間違っていますか?

于 2013-06-01T18:08:42.097 に答える