R中的最小距离算法

时间:2014-02-10 19:30:35

标签: c++ r subsequence

我在C ++中编写了一个函数,它执行以下操作:给定(可能很长)向量x和阈值thr,找到{{1}的子序列y这样xx[1]∈yx[length(x)]∈y∀i∈1:length(y) y[i+1]-y[i]。目的是找到thr的简短子序列,其中x“与plot(x)看起来相同”,因为图表的分辨率为plot(x[subsequence])

该函数是R包的一部分,使用thr接口调用C ++函数。来源是:https://gist.github.com/kenahoo/8922376。 (它实际上是在Rcpp上运行,而不是简单的向量,但它相当于作为向量独立地操作每个列,然后合并索引序列。)

我想找到一个同样的纯R解决方案,它很好用。有效 - 一个明显的想法就像data.frame,但这 是合适的,因为它会错过随着时间的推移积累的值中的任何缓慢漂移超过which(diff(x)>thr)

示例:

thr

产生这样的近似值:

> set.seed(123)
> x <- cumsum(runif(100, -1, 1))
> y <- downsampleForPlot(data.frame(x=x), 2.5)
> y
[1]   1  11  26  46  57  71  81 100

approximation plot

欢迎提出任何想法。

0 个答案:

没有答案