如何将毫秒数据转换为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)
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)