From: Thierry Banel <tbanelwebmin@free.fr>
To: emacs-orgmode@gnu.org
Subject: Re: very long table calc expressions ?
Date: Wed, 20 Jun 2018 20:28:04 +0200 [thread overview]
Message-ID: <5B2A9CB4.7090702@free.fr> (raw)
In-Reply-To: <87fu1h25a8.fsf@mat.ucm.es>
Le 20/06/2018 11:09, Uwe Brauer a écrit :
> > Le 19/06/2018 19:21, Uwe Brauer a écrit :
>
> > You may want to take a look at the orgtbl-aggregate package available on
> > Melpa.
>
>
>
> Thanks very much. I have already installed that package but the example
> presented in the documentation were too sophisticated for my purpose. May
> I suggest to include this example in the documentation, because your
> package is a real time saver!!
>
I included such an example (and added your name to the contributors list).
> I take the opportunity to ask whether your package can also easily
> deal with the following problem (which is very important to me and
> drives my crazy)
Not easily. orgaggregate groups rows using equality, whereas you need to
group rows based on intervals (between 5 and 6.9 for example).
But you can prepare the data table with a new, computed column, telling
in which interval each value falls:
#+TBLNAME: raw-data
| Test | Interval |
|------+----------|
| 0 | SS |
| 1 | SS |
| 2 | SS |
| 3 | SS |
| 4 | SS |
| 5 | AP |
| 6 | AP |
| 7 | NT |
| 8 | NT |
| 9 | SB |
| | NP |
| | NP |
| | NP |
#+TBLFM: $2= "nan"="$1" ? string("NP") : 0<=$1 && $1<=4.9 ? string("SS")
: 5<=$1 && $1<=6.9 ? string("AP") : 7<=$1 && $1<=8.9 ? string("NT") :
9<=$1 && $1<=10 ? string("SB") : string("OTHER");E
And then orgaggregate can handle it:
#+BEGIN: aggregate :table "raw-data" :cols "Interval count()"
| Interval | count() |
|----------+---------|
| SS | 5 |
| AP | 2 |
| NT | 2 |
| SB | 1 |
| NP | 3 |
#+END:
>
> #+TBLFM: $4='(length (org-lookup-all '($2 $3) '(remote(raw-data,@2$1..@>$1)) nil 'in-interval));N
>
>
> However that function can not deal with empty strings (I could replace
> the empty string by some string but then the function does not
> distinguish between the string and 0). So I want that the entry NP
> represents the counts of the empty strings: there are three in that column.
>
> So can your package deal with this situation?
>
> Thanks again
>
> Uwe Brauer
>
I don't have a solution out of my hat. But I guess the problem you face
may originate from the remote() function. It filters out empty values.
However you can change this behavior using the ;E modifier.
| [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
#+TBLFM: $1=remote(raw-data,@2$1..@>$1)
| [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, nan, nan, nan] |
#+TBLFM: $1=remote(raw-data,@2$1..@>$1);E
Regards
Thierry
next prev parent reply other threads:[~2018-06-20 18:28 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-19 17:21 very long table calc expressions ? Uwe Brauer
2018-06-20 6:13 ` Thierry Banel
2018-06-20 9:09 ` Uwe Brauer
2018-06-20 18:28 ` Thierry Banel [this message]
2018-06-21 13:35 ` Uwe Brauer
2018-06-21 19:06 ` Bernt Hansen
2018-06-22 10:28 ` Uwe Brauer
2018-06-22 13:16 ` Bernt Hansen
2018-06-22 14:16 ` Uwe Brauer
2018-06-22 15:03 ` Jonathan Leech-Pepin
2018-06-22 15:25 ` Uwe Brauer
2018-06-22 16:48 ` Nick Dokos
2018-06-22 17:22 ` Thierry Banel
2018-06-22 17:54 ` Uwe Brauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5B2A9CB4.7090702@free.fr \
--to=tbanelwebmin@free.fr \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.