【问题标题】:How to pass a function with parameters being partially fixed to a higher-order function?如何将参数部分固定的函数传递给高阶函数?
【发布时间】:2022-11-24 09:35:00
【问题描述】:

我想将函数ols作为参数传递给高阶函数moving(或rolling),并固定ols的第一个参数(因变量)。比如我有ols([1,2], [x(n),x(n-1),x(n-2),x(n-3)])

在哪里

  • 因变量y固定为[1,2]
  • x(n) 是从 x 上的第 n 个滚动窗口生成的向量。

【问题讨论】:

    标签: functional-programming partial dolphindb


    【解决方案1】:

    在您的部分应用示例中,固定输入参数是一个向量。试试这个脚本:

    defg getR2(x,y){
        return ols(y, x, true, 2).RegressionStat[0,1]
    }
    x = 1 2 3 4 5 6 7 8
    y = 1 2
    moving(getR2{,y},x, 2)
    

    输出:

    offset  0   1   2   3   4   5   6   7
    0           1   1   1   1   1   1   1
    

    您还可以修复部分应用程序中作为矩阵的输入参数。例如:

    defg getR2(x,y){
        return ols(x,y,,2).RegressionStat[0,1]
    }
    x = matrix([1 2 3],[4,5,6])
    y = matrix([1 2 3],[4,5,6])
    each(def(m,n) -> moving(getR2, [m,n], 2), x, y)
    

    输出:

    col1    col2
        
    1   1
    1   1
    

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多