On Thu, Feb 21, 2019 at 2:59 PM <jackhfi...@gmail.com> wrote:

>
> - Tables <https://docs.racket-lang.org/rebellion/Tables.html>, which are
> like a list of records that all have the same keywords. Tables are similar
> to dataframes and are intended to make it easy to process spreadsheet-like
> data such as CSV files. Example:
>
>
Everyone must be thinking the same things these past few months...

https://bitbucket.org/jadudm/data-table

I have been looking at Pyret's interface to tables, as well as the
data-frame package in the Racket pkg collection, and R's interface to
dataframes. My goal is something that is syntactically/conceptually simple
for students to use for EDA, and potentially scales well to more
interesting questions involving data. In the fall, I'll be doing work with
students around environmental sensing as part of their coursework, and I
want something for working with data that fits into the HtDP approach to
introducing students to thinking about designing programs.

Right now, I'm still exploring, and haven't made significant progress on
documentation, largely because I've just lifted the library to a point that
I can start using it myself for some experimentation with data in a project
of my own. This has illustrated some things that are missing, are not as
clean as they could be, etc., so I'm going to circle around again on the
library as I explore. My thinking is that if I can simplify the interfaces
and operations on a project with a heavy data lift, I might be heading in
the right direction for small data projects as well.

At the moment, I can import public spreadsheets from Google, slurp in MySQL
tables, SQLite tables, and CSV files. Although proprietary, I'll probably
add support for Airtable as an input as well, and will eventually look at
some of the MQTT dashboards for IoT (eg. io.adafruit.com). I have not
tested the living daylights out of the library, but nascent tests are
proceeding with development to watch for regressions as I explore. I can
insert, select, and sieve (filter) from tables, as I like the nomenclature
that Pyret uses for tables; I'm borrowing their ideas for the interface to
table operations for now.

I like the interface you've proposed for quickly specifying columns
(although the rationale for keywords is unclear to me), but I'd personally
have to think about the role of types on those columns. I like Pyret's
sanitizers, which provide cleanliness guarantees that the user can specify,
thus protecting the programmer from ill-formatted data in the table.

I suppose data-table is a usable library at this point, but it's highly
fragile while I'm working on it. However, I'm happy to push to Github as
well as Bitbucket (which apparently does not play well with the package
distribution system?), so that it can be poked at by others.

Cheers,
Matt

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to