基于时间序列场测量中的缺失时间戳的间隙填充

时间:2015-08-06 22:37:38

标签: r matlab csv

我有一个大的现场测量数据集(一个csv文件)。

由于电源故障,数据集有几个丢失的数据点。

发生电源故障时,它没有生成时间戳以及当时丢失的记录。

如何填补缺失的时间戳并填写缺失记录的空白(标签)。

以下是cvs数据集:

7/7/15 10:01    45  66  80
7/7/15 10:02    35  18  12
7/7/15 10:04    77  60  35
7/7/15 10:05    77  37  18
7/7/15 10:06    81  57  86
7/7/15 10:07    43  7   80
7/7/15 10:13    69  59  50
7/7/15 10:14    28  81  15
7/7/15 10:15    86  7   20
7/7/15 10:19    22  36  26
7/7/15 10:20    99  39  83

在这种情况下,缺少的时间戳和记录在

7/7/15 10:03
7/7/15 10:08
7/7/15 10:09
7/7/15 10:10
7/7/15 10:11
7/7/15 10:12
7/7/15 10:16
7/7/15 10:17
7/7/15 10:18

请指导我如何用时间戳填补这些空白,缺少的记录将由"空白"填写。 R或Matlab中的(或制表空间)。

非常感谢。

1 个答案:

答案 0 :(得分:0)

预测

中尝试 tsclean
t0 <- ISOdatetime(2015, 8, 6, 0, 10, 0)
t1 <- format(seq.POSIXt(from=t0, length.out=20, by="sec"), "%M:%S")
t2 <- t1[c(1,2, 4:7, 10, 12, 14:15, 20)]

x <- data.frame(date=rep(as.Date("2015-07-07"), 20), 
   t=format(seq.POSIXt(from=t0, length.out=20, by="sec"), "%M:%S"))
y <- data.frame(date=rep(as.Date("2015-07-07"), 11), 
     t = t2, 
     num1 = runif(11))
(z <- merge(x, y, all.x=TRUE))

         date     t        num1
1  2015-07-07 10:00 0.678124372
2  2015-07-07 10:01 0.844224331
3  2015-07-07 10:02          NA
4  2015-07-07 10:03 0.491658140
5  2015-07-07 10:04 0.766373149
6  2015-07-07 10:05 0.006970135
7  2015-07-07 10:06 0.781392461
8  2015-07-07 10:07          NA
9  2015-07-07 10:08          NA
10 2015-07-07 10:09 0.959365082
11 2015-07-07 10:10          NA
12 2015-07-07 10:11 0.652523464
13 2015-07-07 10:12          NA
14 2015-07-07 10:13 0.616461093
15 2015-07-07 10:14 0.215957890
16 2015-07-07 10:15          NA
17 2015-07-07 10:16          NA
18 2015-07-07 10:17          NA
19 2015-07-07 10:18          NA
20 2015-07-07 10:19 0.369941733

require(forecast)
z$num1 <- tsclean(z$num1)
z
         date     t        num1
1  2015-07-07 10:00 0.678124372
2  2015-07-07 10:01 0.844224331
3  2015-07-07 10:02 0.667941235
4  2015-07-07 10:03 0.491658140
5  2015-07-07 10:04 0.766373149
6  2015-07-07 10:05 0.006970135
7  2015-07-07 10:06 0.781392461
8  2015-07-07 10:07 0.840716668
9  2015-07-07 10:08 0.900040875
10 2015-07-07 10:09 0.959365082
11 2015-07-07 10:10 0.805944273
12 2015-07-07 10:11 0.652523464
13 2015-07-07 10:12 0.634492278
14 2015-07-07 10:13 0.616461093
15 2015-07-07 10:14 0.215957890
16 2015-07-07 10:15 0.246754658
17 2015-07-07 10:16 0.277551427
18 2015-07-07 10:17 0.308348195
19 2015-07-07 10:18 0.339144964
20 2015-07-07 10:19 0.369941733