如何将毫秒数据转换为R中的时间序列

How to convert millisecond data in to time series in R

timeInMSec height  c1
  1     100.0   1
  5     80.0    1
  6     80.0    0
  9     76.0    1
 12     80.5    0
 14     80.5    1
 16     80.5    0

我有如上所示的数据,其中 timeInMsec 是以毫秒为单位的时间,每当发生变化时,我们都会记录数量。数量是 类 以及连续值,所以我想对这种数据进行时间序列分析。 那么如何使用R将这种不规则数据转换为时间序列呢?

您提到 "whenever change happens we record quantity",因此您可能可以扩展系列,然后根据之前的观察填充值。之后,您可以将数据框转换为时间序列。如果您正在寻找更高级的插补技术。您可以考虑 imputeTS 包中的函数。

library(tidyverse)

dat2 <- dat %>%
  # Complete the sequence
  complete(timeInMSec = full_seq(timeInMSec, period = 1)) %>%
  # Fill the value based on previous record
  fill(-timeInMSec)

# Convert to ts object
dat_ts <- ts(dat2[, -1], start = dat2$timeInMSec[1], end = dat2$timeInMSec[16])

数据

dat <- read.table(text = "timeInMSec height  c1
  1     100.0   1
                  5     80.0    1
                  6     80.0    0
                  9     76.0    1
                  12     80.5    0
                  14     80.5    1
                  16     80.5    0",
                  header = TRUE)