normalized = {
const A = Array.from(penguins_without_nan, () => []);
for (const [k, c] of columns.entries()) {
const channel = Plot.valueof(penguins_without_nan, c);
const mean = d3.mean(channel);
const max = d3.max(channel);
const deviation = d3.deviation(channel);
for (let i = 0; i < channel.length; ++i) {
A[i][k] =
normalizeBy === "max"
? channel[i] / max
: normalizeBy === "deviation" || normalizeBy === "z-score"
? (channel[i] - mean) / deviation
: normalizeBy === "log"
? Math.log10(channel[i])
: NaN;
}
}
return A;
}