2017-10-22 55 views
2

在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)。 –

回答

1

您提到了R中的動物園庫,它是用於時間序列的。如果這是你的用例,你會發現在TimeSeries.jl中實現滯後:http://timeseriesjl.readthedocs.io/en/latest/apply.html#lag雖然它可能不是你想要的。

+0

不完全是我想要的,但這是有幫助的。它看起來也許我正在尋找的功能太容易在基本語言中實現,以獲得它自己的功能...... –