Published
Edited
Aug 19, 2021
1 fork
Insert cell
# Untitled
Insert cell
import {
tidy,
groupBy,
summarize,
tally,
count,
n,
filter,
complete,
select,
pivotLonger,
negate,
sum,
mutate,
mutateWithSummary,
lag,
} from '@pbeshai/tidyjs'
Insert cell
import {
summarizeMomentGranularity
} from '@tidyjs/tidy-moment'
Insert cell
covid_data = FileAttachment("time_series_covid19_confirmed_global.csv").csv()
Insert cell
Object.keys(covid_data[0]).slice(0,4)
Insert cell
time_keys = Object.keys(covid_data[0]).slice(4)
Insert cell
tidy_data = tidy(
covid_data,
pivotLonger({
cols: time_keys,
namesTo: 'date',
valuesTo: 'cases',
}),
groupBy(['Country/Region', 'date'], [
summarize({
cases: sum('cases'),
})
]),
mutateWithSummary({
prev_cases: lag('cases', { default: 0 }),
}),
mutate({
new_daily: (d) => d.cases - d.prev_cases,
}),
summarizeMomentGranularity('weeks', { value: sum('value') })
)
Insert cell
Inputs.table(tidy_data)
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