【问题标题】:Built in lagged operator function in Julia在 Julia 中内置滞后运算符函数
【发布时间】:2017-10-23 16:11:11
【问题描述】:

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]

有没有通用的函数来完成这样的任务?

【问题讨论】:

  • lagop(op,array,offset) = [op(array[i + offset], array[i]) for i in 1:length(array)-offset] 还不够吗?
  • @Liso 绝对是可以实现的,但是在某些场景下这类操作无处不在,这样的功能可以节省时间/增加可读性。例如,R 包中的 rollapply function zoo

标签: arrays functional-programming julia


【解决方案1】:

你提到了 R 中的 zoo 库,它是用于时间序列的。如果这是您的用例,您会发现 TimeSeries.jl 中实现了延迟:http://timeseriesjl.readthedocs.io/en/latest/apply.html#lag 不过,这可能不是您想要的。

【讨论】:

  • 不完全是我想要的,但这很有帮助。看起来我正在寻找的功能可能太容易在基础语言中实现,不值得拥有自己的功能......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2016-01-20
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
相关资源
最近更新 更多