Public
Edited
Dec 12, 2023
Insert cell
Insert cell
penguinsAq = aq.from(penguins)
Insert cell
penguinsMeta = penguinsAq.select(["species", "island"]).dedupe()
Insert cell
Insert cell
Insert cell
viewof tab = Inputs.table(penguinsMeta, {
header: {
species: "species_tab"
}
})
Insert cell
penguinsSub = penguinsAq.join(aq.from(tab))
Insert cell
Plot.plot({
marks: [
Plot.barY(penguinsSub, {x: "culmen_length_mm", y: "body_mass_g", sort: {x: "y", reverse: true}}),
Plot.ruleY([0])
]
})
Insert cell
viewof tab_alt = Inputs.table(penguinsMeta, {
header: {
island: "island_demo",
...Object.fromEntries(
penguinsMeta
.columnNames()
.filter((name) => name.startsWith("s"))
.map((name) => [name, `${name}_tab`])
)
}
})
Insert cell
viewof tab_alt2 = Inputs.table(penguinsMeta, {
header: {
island: "island_demo",
...Object.fromEntries(
penguinsMeta
.columnNames()
.filter((name) => name.endsWith("s"))
.map((name) => [name, name.endsWith("s") ? name.replace("s", '') : name])
)
}
})
Insert cell
penguinsAq.columnNames()
Insert cell
originalArray = ["species", "island", "culmen_length_mm", "culmen_depth_mm", "flipper_length_mm", "body_mass_g", "sex"];

Insert cell
function createKeyValuePairs(originalArray, prefix, suffix) {
const keyValuePairs = {};

originalArray.forEach(value => {
keyValuePairs[value] = value.startsWith(prefix) ? value + suffix : value;
});

return keyValuePairs;
}
Insert cell
foo = createKeyValuePairs(originalArray, "sp", "_tab");
Insert cell
foo
Insert cell
penguinsAq.select(foo, {headers: foo})
Insert cell
Inputs.table(penguinsAq)
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more