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: d => {
const s = op.covariance(d.za, d.zb) || 0;
const di = 1 / (1 - s * s);
return op.sqrt(di * (d.za * d.za - 2 * s * d.za * d.zb + d.zb * d.zb));
}
})
.select(aq.not('za', 'zb'))
.view(10)