Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Lisp-Stat/data-frame

Data frames for Common Lisp
https://github.com/Lisp-Stat/data-frame

common-lisp statistical-analysis

Last synced: about 1 month ago
JSON representation

Data frames for Common Lisp

Awesome Lists containing this project

README

        

[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MS-PL License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]





Logo

Data Frame


Data frames for Common Lisp. A two-dimensional array-like structure in which each column contains values of one variable and each row contains one set of values from each column


Explore the docs »




Report Bug
·
Request Feature
·
Reference Manual

Table of Contents




  1. About The Project



  2. Getting Started


  3. Usage

  4. Roadmap

  5. Resources

  6. Contributing

  7. License

  8. Contact

## About the Project

A data frame is a two dimensional data structure structure whose
columns may be of differing types. It is similar to, and may be
manipulated as, a Common Lisp array. Data frames hold tightly
coupled collections of variables that all belong to one experiment.

### Built With

* [anaphora](https://github.com/tokenrove/anaphora)
* [alexandria](https://gitlab.common-lisp.net/alexandria/alexandria)
* [array-operations](https://github.com/lisp-stat/array-operations)
* [select](https://github.com/lisp-stat/select)
* [let-plus](https://github.com/sharplispers/let-plus)
* [numerical-utilities](https://github.com/lisp-stat/numerical-utilities)

## Getting Started

To get a local copy up and running follow these steps:

### Prerequisites

An ANSI Common Lisp implementation. Developed and tested with [SBCL](https://www.sbcl.org/).

### Installation

Lisp-Stat is composed of several system that are designed to be
independently useful. So you can, for example, use `data-frame` for
any project needing to manipulate two dimensional data in a machine
learning or statistical setting.

#### Getting the source

To make the system accessible to [ASDF](https://common-lisp.net/project/asdf/) (a build facility, similar to `make` in the C world), clone the repository in a directory ASDF knows about. By default the `common-lisp` directory in your home directory is known. Create this if it doesn't already exist and then:

1. Clone the repositories
```sh
cd ~/common-lisp && \
git clone https://github.com/Lisp-Stat/data-frame.git && \
git clone https://github.com/Lisp-Stat/dfio.git
```
2. Reset the ASDF source-registry to find the new system (from the REPL)
```lisp
(asdf:clear-source-registry)
```
3. Load the system
```lisp
(asdf:load-system :data-frame)
```

If you have installed the slime ASDF extensions, you can invoke this
with a comma (',') from the slime REPL in emacs.

#### Getting dependencies

To get the third party systems that Lisp-Stat depends on you can use a dependency manager, such as [Quicklisp](https://www.quicklisp.org/beta/) or [CLPM](https://www.clpm.dev/) Once installed, get the dependencies with either of:

```lisp
(clpm-client:sync :sources "clpi") ;sources may vary
```

```lisp
(ql:quickload :data-frame)
```

You need do this only once. After obtaining the dependencies, you can
load the system with `ASDF` as described above without first syncing
sources.

## Usage

Create a data frame:

```lisp
(make-df '(:a :b) '(#(1 2 3) #(10 20 30)))

```

For more examples, please refer to the [Documentation](https://lisp-stat.dev/docs/manuals/data-frame).

## Roadmap

See the [open issues](https://github.com/lisp-stat/data-frame/issues) for a list of proposed features (and known issues).

## Resources

This system is part of the [Lisp-Stat](https://lisp-stat.dev/)
project; that should be your first stop for information. Also see the
[resources](https://lisp-stat.dev/resources) and
[community](https://lisp-stat.dev/community) page for more
information.

## Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on the code of conduct, and the process for submitting pull requests.

## License

Distributed under the MS-PL License. See [LICENSE](LICENSE) for more information.

## Contact

Project Link: [https://github.com/lisp-stat/data-frame](https://github.com/lisp-stat/data-frame)

[contributors-shield]: https://img.shields.io/github/contributors/lisp-stat/data-frame.svg?style=for-the-badge
[contributors-url]: https://github.com/lisp-stat/data-frame/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/lisp-stat/data-frame.svg?style=for-the-badge
[forks-url]: https://github.com/lisp-stat/data-frame/network/members
[stars-shield]: https://img.shields.io/github/stars/lisp-stat/data-frame.svg?style=for-the-badge
[stars-url]: https://github.com/lisp-stat/data-frame/stargazers
[issues-shield]: https://img.shields.io/github/issues/lisp-stat/data-frame.svg?style=for-the-badge
[issues-url]: https://github.com/lisp-stat/data-frame/issues
[license-shield]: https://img.shields.io/github/license/lisp-stat/data-frame.svg?style=for-the-badge
[license-url]: https://github.com/lisp-stat/data-frame/blob/master/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://www.linkedin.com/company/symbolics/