On Wed, Nov 04, 2015 at 10:03:48AM +0100, Rainer M Krug wrote: > Rick Frankel <r...@rickster.com> 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 :).