kdb在按行选择中应用函数

chr*_*ise 6 kdb

我有一张桌子

t: flip `S`V ! ((`$"|A|B|"; `$"|B|C|D|"; `$"|B|"); 1 2 3)
Run Code Online (Sandbox Code Playgroud)

和一些决定

t1: 4 10 15 20 ! 1 2 3 5;
t2: 4 10 15 20 ! 0.5 2 4 5;
Run Code Online (Sandbox Code Playgroud)

现在我需要在S中的子串和下面的函数中添加一个带有值的列(这是一个伪代码,因为我被困在这里).

f:{[s;v];
    if[`A in "|" vs string s; t:t1;];
    else if[`B in "|" vs string s; t:t2;];
    k: asc key t;
    :t k k binr v;
}
Run Code Online (Sandbox Code Playgroud)

问题是当我做类似的事情时,s和v作为完整的列向量传递

update l:f[S,V] from t;
Run Code Online (Sandbox Code Playgroud)

如何使这个按行工作?我怎样才能使它成为一个矢量化函数?谢谢

小智 5

您将需要使用每个副本来逐行应用两个函数.

在你的情况下:

update l:f'[S;V] from t;
Run Code Online (Sandbox Code Playgroud)