On Friday, 8 April 2016 at 18:27:59 UTC, Laeeth Isharc wrote:
suppose I have a forward or random access range. what's the best way to compare each element with the element 4 elements prior to that element? I could map each element to a tuple of the element and the element 4 bars previously and do it that way. any neater way ?

I would recommend writing a good lag function. If we have a good lag function, then you could easily do something like
x.zip(x.lag(lookback)).map!(a => a[0] > a[1]);

I could think of a few different ways to implement a lag function, but it would take some time to write a good one (including NA padding, for instance). You could probably use popBackN or popFrontN/drop to accomplish it, depending on forward or backward lags.

Alternately, you could probably figure something out with .save that avoids the use of a lag function. You could create a range that saves up to four values. When full you pop off the front, make your comparison, and then save the latest.

Reply via email to