Thank you for raising this question. By the way, one desired feature for a Clojure dataframe abstraction would be good interop with Renjin's dataframes. Renjin is a JVM-based rewrite of (a subset of) R. It offers a large number of JVM-based statistical libraries. Most of them rely on the dataframe abstraction for their data. R is also very Lisp-like in its data representation, so wrapping all this with Clojure would be a delight.
On Thursday, March 10, 2016 at 1:47:44 AM UTC+2, Christopher Small wrote: > > > If you're going to do any work in this area, I would highly encourage you > to do in as part of the core.matrix library. That is what Incanter is or > will be using for it's dataset implementation. But it's nice that those > abstractions and implementations be separate from Incanter itself, since > Incanter is a rather large dependency. > > Core.matrix is certainly (in my eyes) becoming the de facto matrix > computation library in the Clojure ecosystem, and I think in the level of > interop between different implementations there, and extent of utilization > by the clojure community, we rival the python offerings. However, while > core.matrix has some dataset protocols, api functions and basic > implementations, there's still some work to get the full expressiveness of > the data.frame pattern as seen in R and Pandas. Specifically, there is no > support for setting rownames (or arbitrary "name" assignments beyond that > of a single dimension (columns...)). This is something I started working on > a while back, but wasn't able to finish. I could potentially push what I > came up with to a fork, but unfortunately, I don't have any more time to > work on the problem at the moment. > > Mike Anderson is a great project maintainer, and will probably be happy to > help guide you in stitching together a solution. > > Best > > Chris > > > > > > On Wednesday, March 9, 2016 at 12:57:31 PM UTC-8, arthur.ma...@gmail.com > wrote: >> >> Is there any desire or need for a Clojure DataFrame? >> >> >> By DataFrame, I mean a structure similar to R's data.frame, and Python's >> pandas.DataFrame. >> >> Incanter's DataSet may already be fulfilling this purpose, and if so, I'd >> like to know if and how people are using it. >> >> From quickly researching, I see that some prior work has been done in >> this space, such as: >> >> * https://github.com/cardillo/joinery >> * https://github.com/mattrepl/data-frame >> * >> http://spark.apache.org/docs/latest/sql-programming-guide.html#dataframes >> >> Rather than going off and creating a competing implementation ( >> https://xkcd.com/927/), I'd like to know if anyone here is actively >> working on, or would like to work on a DataFrame and related utilities for >> Clojure (and by extension Java)? Is it something that's sorely needed, or >> is everybody happy with using Incanter or some other library that I'm not >> aware of? If there's already a defacto standard out there, would anyone >> care to please point it out? >> >> As background information: >> >> My specific use-case is in NLP and ML, where I often explore and >> prototype in Python, but I'm then left to deal with a smattering of >> libraries on the JVM (Mallet, Weka, Mahout, ND4J, DeepLearning4j, CoreNLP, >> etc.), each with their own ad-hoc implementations of algorithms, matrices, >> and utilities for reading data. It would be great to have a unified way to >> explore my data in the Clojure REPL, and then serve the same code and >> models in production. >> >> I would love for Clojure to have a broadly compatible ecosystem similar >> to Python's Numpy/Pandas/Scikit-*/Scipy/matplotlib/GenSim,etc. Core.Matrix >> and Incanter appear to fulfill a large chunk of those roles, but I am not >> aware if they've yet become the defacto standards in the community. >> >> Any feedback is greatly appreciated. >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.