scicloj/tablecloth

Dataset manipulation library built on the top of tech.ml.dataset

What it solves

Tablecloth provides a simplified, high-level API for manipulating columnar datasets in Clojure. It acts as a wrapper around the tech.ml.dataset library to make data manipulation more intuitive and consistent, drawing inspiration from popular R data manipulation tools like dplyr, tidyr, and data.table.

How it works

It reorganizes the existing functions of tech.ml.dataset into a streamlined API. Key architectural choices include:

  • Single Entry Point: Common operations are dispatched through a single function based on arguments.
  • Thread-First Support: Functions are designed to enable the use of Clojure's thread-first macro (->) for cleaner data pipelines.
  • Grouped Datasets: It introduces a special dataset type for group-by results, where subsets created after grouping are stored as a column, and most operations are aware of this structure to process data accordingly.

Who it’s for

Data scientists and developers using Clojure who need a powerful and ergonomic way to perform data frame manipulation and cleaning, especially those coming from R or familiar with the Tidyverse ecosystem.

Highlights

  • High-level API for tech.ml.dataset.
  • Support for grouped datasets and specialized aggregation.
  • Designed for thread-first pipeline composition.
  • Inspired by R's dplyr, tidyr, and data.table.

Related

  • Project
  • Project
  • Project
  • Project
  • Project