在Julia中构建了滞后的运算符功能

在Julia中构建了滞后的运算符功能

问题描述:

在julia中是否存在内置的滞后运算符功能?即形式的函数:在Julia中构建了滞后的运算符功能

lagop(op,array,offset) 

返回类似

[array[i + offset] (op) array[i] for i in 1:length(array)-offset] 

对于连续的差异,有diff功能。对于以下任何一项工作:

x = collect(1:10) 
x[1:end-1]+x[2:end] 
[x[i]+x[i+1] for i in 1:length(x)-1] 

是否有一个通用的功能来完成这样的任务?

+1

'lagop(op,array,offset)= [op(array [i + offset],array [i])for i in 1:length(array)-offset]'是不够的吗? – Liso

+0

@Liso它绝对可以实现,但在某些情况下,这些操作无处不在,并且这样的功能可以节省时间/提高可读性。例如'R'包'动物园'中的['rollapply'函数](https://cran.r-project.org/web/packages/zoo/zoo.pdf#Rfn.rollapply.1)。 –

您提到了R中的动物园库,它是用于时间序列的。如果这是你的用例,你会发现在TimeSeries.jl中实现滞后:http://timeseriesjl.readthedocs.io/en/latest/apply.html#lag虽然它可能不是你想要的。

+0

不完全是我想要的,但这是有帮助的。它看起来也许我正在寻找的功能太容易在基本语言中实现,以获得它自己的功能...... –