将xy数据集转换为数组
我有一个时间/值的数据集,例如将xy数据集转换为数组
> df <- data.frame(time=c(1,4,5,6), speed=c(100, 500, 600, 800))
我想将它与一个项转换为数组每个时间刻度:
> some_func(df, speed ~ time, step=1)
[1] 100 100 100 500 600 800
通知,加入时间== 2和3中的值。
然后我可以在互相关函数中使用它。
这将返回您想要的值。
df$speed[rep(seq_len(nrow(df)), c(diff(df$time), 1))]
[1] 100 100 100 500 600 800
这里,我们使用rep
用向量参数一起的第二个参数返回所需的矢量指数df$speed
。我们通过diff
来实现这一点,它将计算时间段间隔并在末尾附加1以返回最终值。
由于线性内插。它可以开发来做我所需要的。 A.O。处理十进制时间和二次分辨率。 –
一种可能的方法是使用stepfunction插入,就像你在上面的例子中想要的那样。
sf<-stepfun(df$time,c(df$speed[1],df$speed))
sf(1:6)
不幸的是,这不适用于ccf函数,这就是我需要的。有没有办法将其转换为矢量? –
评估对象sf(1:6)是一个数字向量。 ccf(sf(1:6),sf(2:7))因此起作用。 – alex2006
谢谢。这就是诀窍。 –
不相同的值,但线性近似将由返回'约(DF $时间,DF $速度,N = 6)'填充在用于次2和3 – lmo