From 2c5c2a32c172e3a02cb5ca18228d2a6a4ce9fd8b Mon Sep 17 00:00:00 2001 From: AJ Rossini Date: Sat, 19 Dec 2009 17:59:33 +0100 Subject: [PATCH] cleaned up code to load dataframes from DSV files, added cls-user as a test package. Signed-off-by: AJ Rossini --- examples/loading-data.lisp | 52 ++++++++++++++++++++++++++++++++++++++++++---- src/packages.lisp | 4 ++-- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/examples/loading-data.lisp b/examples/loading-data.lisp index da70a1f..94220cf 100644 --- a/examples/loading-data.lisp +++ b/examples/loading-data.lisp @@ -1,6 +1,6 @@ ;;; -*- mode: lisp -*- -;;; Time-stamp: <2009-12-17 17:31:29 tony> +;;; Time-stamp: <2009-12-19 17:50:04 tony> ;;; Creation: <2009-03-12 17:14:56 tony> ;;; File: template.lisp ;;; Author: AJ Rossini @@ -12,9 +12,8 @@ ;;; 'releases'. Our software 'escapes', leaving a bloody trail of ;;; designers and quality assurance people in its wake. - ;; start within the common-lisp-stat-user -(in-package :ls-user) +(in-package :cls-user) ;; we'll be loading from directories in the CLS homedir, so we want to ;; make it easier to reach. @@ -48,13 +47,13 @@ return a pathspec, not a string/namespec" (progn ;; Importing data from DSV text files. - (asdf:oos 'asdf:load-op 'rsm-string) (rsm.string:file->string-table (localized-pathto "Data/example-mixed.csv")) (rsm.string:file->number-table (localized-pathto "Data/example-numeric.csv")) + (defparameter *my-df-2* (make-instance 'dataframe-array :storage @@ -64,6 +63,7 @@ return a pathspec, not a string/namespec" :doc "This is an interesting dataframe-array")) *my-df-2* + (defparameter *my-df-3* (make-instance 'dataframe-array :storage @@ -75,5 +75,49 @@ return a pathspec, not a string/namespec" ;; Need to the this using the make-dataframe example, or write a ;; dsvfile->dataframe command. + + + (defparameter *tmp-csv-filedata* (rsm.string:file->number-table + (localized-pathto "Data/example-numeric.csv"))) + (defparameter *tmp-csv-filedata* (rsm.string:file->number-table + (localized-pathto "Data/R-chickwts.csv") + :delims ",")) + (defparameter *tmp-var-name-list* (car *tmp-csv-filedata*)) + (defparameter *tmp-data-list* (cdr *tmp-csv-filedata*)) + (defparameter *tmp-data-array* (listoflist:listoflist->array (cdr *tmp-csv-filedata*))) + (aref *tmp-data-array* 0 2) + (aref *tmp-data-array* 1 1) + (aref *tmp-data-array* 4 0) + + (defparameter *test-df* + (let ((csv-file-data (rsm.string:file->number-table + (localized-pathto "Data/R-chickwts.csv") + :delims ","))) + (let ((var-name-list (car csv-file-data)) + (data-list (listoflist:listoflist->array (cdr csv-file-data)))) + (make-instance 'dataframe-array + :storage data-list + :var-labels var-name-list + :doc "This is an interesting dataframe-array")))) + + *test-df* + + (defun filename->dataframe (filename &optional + (delimsep ",") + (docstring "This is an amusing dataframe array")) + "Reads the DSV file FILENAME and returns a dataframe-array object." + (let ((csv-file-data (rsm.string:file->number-table + filename + :delims delimsep))) + (let ((var-name-list (car csv-file-data)) + (data-list (listoflist:listoflist->array (cdr csv-file-data)))) + (make-instance 'dataframe-array + :storage data-list + :var-labels var-name-list + :doc docstring)))) + + (defparameter *testdf-2* (filename->dataframe (localized-pathto "Data/R-chickwts.csv"))) + ;; *testdf-2* + ) diff --git a/src/packages.lisp b/src/packages.lisp index 60b084e..e264bc6 100644 --- a/src/packages.lisp +++ b/src/packages.lisp @@ -1,6 +1,6 @@ ;;; -*- mode: lisp -*- -;;; Time-stamp: <2009-12-13 18:04:07 tony> +;;; Time-stamp: <2009-12-18 18:35:06 tony> ;;; Creation: <2008-03-11 19:18:34 user> ;;; File: packages.lisp ;;; Author: AJ Rossini @@ -601,7 +601,7 @@ l *cls-home-dir* *cls-data-dir* *cls-examples-dir* should be placed in a similar package elsewhere for reproducibility. But this should hint as to what needs to be done for a user- or analysis-package.") - (:nicknames :ls-user) + (:nicknames :ls-user :cls-user) (:use :common-lisp ; always needed for user playgrounds! :lisp-matrix :common-lisp-statistics -- 2.11.4.GIT