如何获得与前一天相同值的相同值的值

时间:2017-08-22 12:53:51

标签: r

如何使用相同的前一天值替换Var_1中的MasterMapper

eg.row 4缺少值 - 在前一天(第1行)的相同时间替换值/ NA。

同样,第7行包含第3行,第10行包含第9行,第13行包含第11行。我们可以使用NA

替换NA以前的值
ZOO-na.lacf

1 个答案:

答案 0 :(得分:1)

一种方法是使用format来获取时间,然后将其拆分。使用na.locf填充NA并将rbind一起填回,即

library(zoo)

do.call(rbind, c(lapply(split(df, format(df$Date, format = '%H:%M')), function(i) {
                                     i$Var <- na.locf(i$Var); i
                                  }), make.row.names = FALSE))

给出,

 ID                Date Var Var_1
1   1 2014-01-21 00:15:00  22    22
2   4 2014-01-22 00:15:00  22    22
3   8 2014-01-23 00:15:00  23    23
4   2 2014-01-21 00:30:00  33    33
5   5 2014-01-22 00:30:00  22    22
6   6 2014-01-22 00:35:00  54    54
7   3 2014-01-21 00:45:00  13    13
8   7 2014-01-22 00:45:00  13    13
9   9 2104-01-25 01:00:00  34    34
10 10 2104-01-26 01:00:00  34    34
11 11 2104-01-27 02:00:00   2     2
12 13 2104-01-28 02:00:00   2     2
13 12 2104-01-27 03:00:00  21    21

然后您可以order ID如果您愿意df[with(df, order(ID)),]