[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Combine tables which are results from calculations?
From: |
Rick Frankel |
Subject: |
Re: [O] Combine tables which are results from calculations? |
Date: |
Wed, 4 Nov 2015 12:50:46 -0500 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Wed, Nov 04, 2015 at 10:03:48AM +0100, Rainer M Krug wrote:
> Rick Frankel <address@hidden> writes:
>
> > On Tue, Nov 03, 2015 at 02:18:05PM +0100, Rainer M Krug wrote:
> >> Hi
> >>
> >> Considering the following example:
> >
> > here's a way to do it in ruby. There is probably a way in {emacs,cl}-lisp,
> > but
> > I'm not sure how...
> >
> > #+BEGIN_SRC ruby :var a=t1[,0] b=t2[,0] c=t3[,0] :colnames '(a b c)
> > r = [a, b, c]
> > len = r.collect(&:length).max
> > r.each { |l| l.fill('', l.length, len - l.length) }
> > a.zip(b, c)
> > #+END_SRC
>
> Thanks - I'll look into this and see if I can do something similar in R
> or elisp.
Here's a elisp version:
* zip lists
#+name: a
| a |
|---|
| 1 |
| 2 |
#+name: b
| b |
|---|
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
#+name: c
| c |
|----|
| 9 |
| 10 |
| 11 |
#+BEGIN_SRC emacs-lisp :var a=a[,0] b=b[,0] c=c[,0] :colnames '(a b c)
(let* ((l (list a b c))
(max (apply #'max (mapcar #'length l))))
(apply
#'mapcar* #'list
(mapcar (lambda (x) (append x (make-list (- max (length x)) ""))) l)))
#+END_SRC
rick
Note: previous reply was not to list (whoops) CC'ing the list on this so the
answer is saved for posterity :).