我有一个时间/值的数据集,例如
> 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的值。
然后我可以在互相关函数中使用它。
答案 0 :(得分:2)
一种可能的方法是使用stepfunction进行插值,如上例所示。
sf<-stepfun(df$time,c(df$speed[1],df$speed))
sf(1:6)
答案 1 :(得分:1)
这将返回您想要的值。
df$speed[rep(seq_len(nrow(df)), c(diff(df$time), 1))]
[1] 100 100 100 500 600 800
在这里,我们使用rep
以及第二个参数的vector参数来返回df$speed
所需向量的索引。我们使用diff
实现此目的,它将计算时间间隔,并在末尾追加1以返回最终值。