在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]
是否有一个通用的功能来完成这样的任务?
答
您提到了R中的动物园库,它是用于时间序列的。如果这是你的用例,你会发现在TimeSeries.jl中实现滞后:http://timeseriesjl.readthedocs.io/en/latest/apply.html#lag虽然它可能不是你想要的。
+0
不完全是我想要的,但这是有帮助的。它看起来也许我正在寻找的功能太容易在基本语言中实现,以获得它自己的功能...... –
'lagop(op,array,offset)= [op(array [i + offset],array [i])for i in 1:length(array)-offset]'是不够的吗? – Liso
@Liso它绝对可以实现,但在某些情况下,这些操作无处不在,并且这样的功能可以节省时间/提高可读性。例如'R'包'动物园'中的['rollapply'函数](https://cran.r-project.org/web/packages/zoo/zoo.pdf#Rfn.rollapply.1)。 –