如何在kdb中动态计算相关性

如何在kdb中动态计算相关性,kdb,Kdb,我有一个返回表,我想计算每n行的相关性,但我不知道如何做到这一点。更具说明性的是,我的表t是 sym1 sym2 sym3 sym4 3. 4. 5. 1. 0 -1 6. 4. -3 10 8. 9 -4 19 -1 6. 这里有一个可能对你有用的解决方案 q)update s1s2:(cor).'flip{-3#'reverse{-1_x}\[x;y]}[-1+count i]each(sym1;sym2)from t sym1 sym2 sym3 sym4 s1s2 -----------

我有一个返回表,我想计算每n行的相关性,但我不知道如何做到这一点。更具说明性的是,我的表t是

sym1 sym2 sym3 sym4 3. 4. 5. 1. 0 -1 6. 4. -3 10 8. 9 -4 19 -1 6.
这里有一个可能对你有用的解决方案

q)update s1s2:(cor).'flip{-3#'reverse{-1_x}\[x;y]}[-1+count i]each(sym1;sym2)from t
sym1 sym2 sym3 sym4 s1s2
------------------------------
3    4    5    1
0    -1   6    4    1
-3   10   8    9    -0.5447048
-4   19   -1   6    -0.9751578

这只是列之间的一种相关性,即
sym1
sym2
。前两个结果可能会被丢弃,因为它们没有相关性所需的3个值。

此代码适用于您吗?对我来说似乎不是。它只在我计算列sym1和sym2之间的相关性时起作用,并且我需要删除前两行。您能提供一个示例,说明您要对哪些值应用
cor
?例如,如果你想找到sym1和sym2之间的相关性,这是否等同于
(t`sym1)cor t`sym2
,即
30-3-4 cor 4-11019
?对于sym1和sym2,第一个相关性是(30-3)cor(4-110),然后是(0-3-4)cor(-11019),基本上每次我都计算3行的相关性。这同样适用于sym1和sym3、sym1和sym4。提前谢谢你!!