R 将时间序列向量长度设置为相等(使用线性插值调整/重缩放它们)

R 将时间序列向量长度设置为相等(使用线性插值调整/重缩放它们),r,datetime,vector,vectorization,R,Datetime,Vector,Vectorization,我有一个巨大的时间序列数据集,它被表示为向量(没有可用的时间标签),由于测量过程中的一些错误,它们的长度(如length()show()中的值)略有不同(~10%),但它们都明确地描述了大约两分钟的时间间隔。我想重新缩放/调整它们的大小,然后计算它们之间的一些统计数据(因此我需要长度相等的时间序列) 我需要快速的方法和线性插值是我的完美选择,因为速度更重要 简单示例,将长度为5的向量重缩放为长度为10的向量: input <- 0:4 # should be rescaled/resize

我有一个巨大的时间序列数据集,它被表示为向量(没有可用的时间标签),由于测量过程中的一些错误,它们的长度(如
length()
show()中的值)略有不同(~10%),但它们都明确地描述了大约两分钟的时间间隔。我想重新缩放/调整它们的大小,然后计算它们之间的一些统计数据(因此我需要长度相等的时间序列)

我需要快速的方法和线性插值是我的完美选择,因为速度更重要

简单示例,将长度为5的向量重缩放为长度为10的向量:

input <- 0:4 # should be rescaled/resized into :
output <- c(0, .444, .888, 1.333, 1.777, 2.222, 2.666, 3.111, 3.555, 4)

input我想这就足够了:

resize <- function (input, len) approx(seq_along(input), input, n = len)$y
> resize(0:4, 10)
 [1] 0.0000000 0.4444444 0.8888889 1.3333333 1.7777778 2.2222222 2.6666667 3.1111111 3.5555556 4.0000000

> resize( c(0, 3, 2, 1), 10)
 [1] 0.000000 1.000000 2.000000 3.000000 2.666667 2.333333 2.000000 1.666667 1.333333 1.000000