--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/groups/opt_out.
27 February 2014 1:05 am
--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/groups/opt_out.
27 February 2014 12:31 am
Dear Tony,
I have to admit that I don't have a lot of philosophy or long-range
planning behind this. Just that currently I am working in R again, and I
find the generic [] quite handy and expressive for a lot of
situations. I just want something similar in CL that we can agree and
build on.
I think that an equivalent a generic [] is something that we need to
have sooner or later, so I thought we could deal with it now. Otherwise,
all of us will (or have already) introduce incompatible (or even worse,
clashing) syntaxes for the same thing. That is all.
Regarding your observations on our differences in style: I think that I
prefer small-scale, quickly implemented solutions instead of large
designs because I have realized that I lack the ability to plan the
latter, so I would end up putting a lot of effort into code that in the
end does not help me much (this, of course, still happens, despite my
best efforts).
Best,
Tamas
27 February 2014 12:01 am
In a sense, you are proposing something sort of like XARRAY which I like, since it means that the same code can use different backends, plus a CL-SLICE and a CL-DATAFRAME-COMBINATIONS-ON-STERIODS...What do you think?How does this compare to your proposal? To be fair, you tend to implement things that work, and I'm nearly 8 years into this, without too much to show (though 5 went missing due to personal family tragedy, but that's life), so I value your ideas and thoughts, and have always found it worth understanding what is behind them when my first response is to disagree.So that is currently what I'm thinking of (though it isn't documeneted or implemented yet) in the CLS file src/data/modelframe.lisp (in the LOCAL branch, not yet pushed into MASTER branch).I'm still a sucker for clear verbose programming, with shortcuts only when painfully clear to all concerned (which is why I love macro expansions).Then, if the language you provided (mentioned) was just a set of functions, generics, or macros on top, it would be super awesome.I'd be in heaven. If the backing store was substitute-able in the way that dataframes in Common Lisp Stat (CLS) are, it would be even better, but I'm fine with just using Lisp arrays and not just any old table format there.5. appropriate mappers and iterators and collectors4. access and slicing through names in #11. column names and row names, with some sanity checkingIn fact, if I could have:Related to the API, I like a combination of xarray and cl-slice (familar packages, eh?) with a "dataframe-building" component (rbind/cbind on steriods, sort of like your package AFFI provided CL-SLICE on steroids but at a high complexity cost in terms of grasping what one would do.I'm not interested in introducing non-lispy syntax yet, and find either the current array building syntax #2A( ) or the list-of-list structure (with information about "column/variable" orientation, or "row/subject" orientation embedded) to suffice. I noticed your use of plists, and while they are quite intriguing, still need to wrap my head about them.Dear Tamas -I have to admit that I'm a little less than enthusiastic as you phrase it. Let me try to explain.
Right now, for me, the main point of dataframes is to be able to access data by variable name and subject ID, and to be able to manipulate data using that information so that the programming code's statistical logic (following an analysis plan) is clear, as to the manipulations being made and the subsets or supersets (slicing or building up) of the dataframe can be clarified by looking at the computer program code.
2. column-typing with optional enforcement3. elements forming arbitrary Lisp classes (base or object-system or anything in-between derived)
Or...?
best,
-tony
--
best,
-tony
blind...@gmail.com
Muttenz, Switzerland.
"Commit early,commit often, and commit in a repository from which we can easily roll-back your mistakes" (AJR, 4Jan05).
Drink Coffee: Do stupid things faster with more energy!
--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/groups/opt_out.
26 February 2014 10:02 pm
Hi,
Now that things are picking up, I would like to propose that
1. we agree on a name for a function that is basically equivalent to R's
[],
2. and maybe some related convenience functions,
3. write a trivial package that defines these as these generic
functions, and implements them for CL's container types (arrays, lists,
hash tables).
4. after some initial testing, ask that it is included in Quicklisp.
Rationale: I guess we all like to experiment with different approaches,
but having a common operator would promote convergence and
interoperability in the long run.
My suggestions:
I deliberately wrote R's [] there, as it would should work for similar
objects, eg hash tables, etc. But I would like to keep the S-expression
syntax and make the the accessor an ordinary function. Reader
<postbox-contact.jpg>
27 February 2014 1:05 am
Sorry, but quick before I sign off for the evening. How about taking a first pass at what that API and generics would do? While I partially understand why you leverage. [], it isn't a major tool in what I do, which may explain why I do not get it like I feel I should. And since I still don't get it completely, but just like your other packages, a partial realization might helps me clarify the rationale and eventual goals...Summary- a bit more detail, please!Best,-tony--
Sent from Gmail Mobile--
You received this message because you are subscribed to the Google Groups "Common Lisp Statistics" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisp-stat+...@googlegroups.com.
To post to this group, send email to lisp...@googlegroups.com.
Visit this group at http://groups.google.com/group/lisp-stat.
For more options, visit https://groups.google.com/groups/opt_out.
<compose-unknown-contact.jpg>
27 February 2014 12:31 am
Dear Tony,
I have to admit that I don't have a lot of philosophy or long-range
planning behind this. Just that currently I am working in R again, and I
find the generic [] quite handy and expressive for a lot of
situations. I just want something similar in CL that we can agree and
build on.
I think that an equivalent a generic [] is something that we need to
have sooner or later, so I thought we could deal with it now. Otherwise,
all of us will (or have already) introduce incompatible (or even worse,
clashing) syntaxes for the same thing. That is all.
Regarding your observations on our differences in style: I think that I
prefer small-scale, quickly implemented solutions instead of large
designs because I have realized that I lack the ability to plan the
latter, so I would end up putting a lot of effort into code that in the
end does not help me much (this, of course, still happens, despite my
best efforts).
Best,
Tamas
<postbox-contact.jpg>
<compose-unknown-contact.jpg>
--
Hi,
Now that things are picking up, I would like to propose that
1. we agree on a name for a function that is basically equivalent to R's
[],
2. and maybe some related convenience functions,
3. write a trivial package that defines these as these generic
functions, and implements them for CL's container types (arrays, lists,
hash tables).
4. after some initial testing, ask that it is included in Quicklisp.
So I would propose the name $, eg
($ #(2 3 5) 1) ; => 3
and a recursive version $$, eg
($$ #(#(1 2) 3) 0 1) ; => 2
I am open to other suggestions of course, but I would find [] awkward.
Open question: also define generic functions for dimensions? Anything
else?
Best,
Tamas