ShiftedArrays.jl icon indicating copy to clipboard operation
ShiftedArrays.jl copied to clipboard

add fixing of the array argument for lead and lag

Open bkamins opened this issue 3 years ago • 2 comments

I propose that lag(2) could be a shorthand of x -> lag(x, 2), using Base.Fix2. This definition should not introduce any ambiguities and would provide a convenient way for defining a function with lag different than 1.

The same for lead.

bkamins avatar Sep 23 '22 12:09 bkamins

I see how this would be useful (esp. for the high-level data manipulation syntax of DataFrames & co.). One issue is that for the shifts argument ShiftedArrays accepts also Tuples (actually arbitrary iterables, but that might be disallowed).

Would it be worrying that lag([1, 2]) means "shift [1, 2] by 1, whereas lag((1, 2)) is an anonymous function to shift matrices?

piever avatar Sep 30 '22 13:09 piever

ShiftedArrays.lag((1,2)) currently errors, so I understand you are worried that people would mix-up vectors and tuples. Indeed it might happen, but at least on my side I try to work hard to explain people that these types are not interchangeable in general and have different usages.

bkamins avatar Sep 30 '22 15:09 bkamins