aq.table({
a: [1, 1, 2, 2, 3, 4, 5],
b: [1, 2, 2, 1, 3, 4, 10]
})
.derive({
za: ({ a: x }) => (x - op.mean(x)) / op.stdev(x) || 0,
zb: ({ b: x }) => (x - op.mean(x)) / op.stdev(x) || 0,
})
.derive({
dm: ({za, zb}) => {
const s = op.covariance(za, zb) || 0;
const di = 1 / (1 - s * s);
return op.sqrt(di * (za * za - 2 * s * za * zb + zb * zb));
}
})
.select(aq.not('za', 'zb'))
.view(10)