Published
Edited
Aug 10, 2021
6 stars
Insert cell
Insert cell
tasks = FileAttachment("tasks-list.csv").csv({typed: true})
Insert cell
Insert cell
statuses = FileAttachment("tasks-status.csv").csv({typed: true})
Insert cell
Insert cell
joined = tasks.map(
(task) =>
({
...task, // join the original task…
...statuses.find(d => d.ID === task.ID)} //…with the first status, if any
))
Insert cell
Insert cell
Inputs.table(joined)
Insert cell
Insert cell
import { aq, op } from '@uwdata/arquero'
Insert cell
viewof tasksAQ = aq
.fromCSV(await FileAttachment('tasks-list.csv').text())
.view(10)
Insert cell
viewof statusesAQ = aq
.fromCSV(await FileAttachment('tasks-status.csv').text())
.view(10)
Insert cell
tasksAQ.join(statusesAQ, ["ID", "ID"])
.view(10)
Insert cell
Insert cell
import {tidy, leftJoin} from '@pbeshai/tidyjs'
Insert cell
Inputs.table(tidy(tasks, leftJoin(statuses)))
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