An R package providing a toolbox of pipeline-friendly functions for manipulating and querying non-tabular data stored in list objects.
rlist is an R package that provides a comprehensive toolbox for manipulating and querying non-tabular data stored in list objects. It solves the problem of working with diverse, nested datasets—like those from JSON or YAML—that don't fit into rectangular data frames, offering a collection of high-level, pipeline-friendly functions for filtering, mapping, selecting, grouping, and more.
R developers and data analysts who need to process non-relational, nested data structures—such as JSON, API responses, or hierarchical datasets—that are awkward or impossible to store in traditional data frames.
Developers choose rlist because it fills a gap in R's ecosystem by providing a dedicated, expressive toolkit for list-based data manipulation, with seamless integration into modern pipelines and support for lambda expressions, making complex operations on non-tabular data straightforward and readable.
A Toolbox for Non-Tabular Data Manipulation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Functions integrate seamlessly with R's pipe syntax (`|>`) and offer a List-environment for fluent method chaining, as demonstrated in the pipeline examples with commands like `devs |> list.filter(...)`.
Supports a variety of lambda expression forms, including implicit and explicit syntaxes like `x ~ expression`, enabling concise inline function definitions for complex operations, detailed in the lambda section.
Provides a wide array of high-level functions for filtering, mapping, selecting, grouping, and more, tailored for list manipulation, as shown in the getting started examples with `list.filter`, `list.select`, and `list.map`.
Specifically designed to handle nested, non-relational data structures that don't fit into data frames, addressing a common gap in R workflows for JSON-like datasets.
Introduces a unique syntax for lambda expressions and chaining, which can have a steeper learning curve compared to more standardized R approaches like base R or tidyverse functions.
Not as well-integrated with popular tidyverse packages; users may need to frequently convert between lists and data frames for broader compatibility with tools like dplyr or ggplot2.
Operations on deeply nested lists can be inefficient and memory-heavy, making it less suitable for performance-critical applications with large datasets compared to vectorized data frame operations.