emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Thierry Banel <tbanelwebmin@free.fr>
To: emacs-orgmode@gnu.org
Subject: Re: very long table calc expressions ?
Date: Wed, 20 Jun 2018 08:13:06 +0200	[thread overview]
Message-ID: <5B29F072.4040805@free.fr> (raw)
In-Reply-To: <87k1qu1yl5.fsf@mat.ucm.es>

Le 19/06/2018 19:21, Uwe Brauer a écrit :
>
> Hi
>
> Take the following example
>
>
> #+TBLNAME: data
>   | Name | Cual 1 |
>   |------+--------|
>   | A    | NT     |
>   | B    | NT     |
>   | C    | MH     |
>   | D    | AP     |
>   | E    | MH     |
>   | F    | SS     |
>   | G    | NP     |
>   | H    | NP     |
>   | I    | NP     |
>   |      | NT     |
>   |      | AP     |
>   |      | AP     |
>   |      | AP     |
>   |      | AP     |
>   |      | SB     |
>
>
> #+TBLNAME: stat-final2
> |    | Frequency |
> |----+-----------|
> | SS |         1 |
> | AP |         5 |
> | NT |         3 |
> | SB |         1 |
> | MH |         2 |
> | NP |         3 |
> #+TBLFM: @>$2='(length (org-lookup-all "NP" '(remote(data,@2$2..@>I$2)) nil))::@>>$2='(length (org-lookup-all "MH" '(remote(data,@2$2..@>I$2)) nil))::@>>>$2='(length (org-lookup-all "SB" '(remote(data,@2$2..@>I$2)) nil))::@>>>>$2='(length (org-lookup-all "NT" '(remote(data,@2$2..@>I$2)) nil))::@>>>>>$2='(length (org-lookup-all "AP" '(remote(data,@2$2..@>I$2)) nil))::@>>>>>>$2='(length (org-lookup-all "SS" '(remote(data,@2$2..@>I$2)) nil))
>
>
> Are there any rules to break this very long expression?
>
> Thanks
>
> Uwe Brauer
>
>
>

You may want to take a look at the orgtbl-aggregate package available on 
Melpa.

#+BEGIN: aggregate :table "data" :cols "'Cual 1' count()"
| 'Cual 1' | count() |
|----------+---------|
| NT       |       3 |
| MH       |       2 |
| AP       |       5 |
| SS       |       1 |
| NP       |       3 |
| SB       |       1 |
#+END:

It features the count() function which computes frequency, but also sum, 
mean, filtering and much more.
Documentation here: https://github.com/tbanel/orgaggregate

To gain access to the Melpa repository I have those settings in my 
.emacs file:

(require 'package)
(setq package-enable-at-startup nil)   ; To prevent initialising twice
(add-to-list 'package-archives '("gnu"   . 
"http://elpa.gnu.org/packages/"     ) t)
(add-to-list 'package-archives '("melpa" . 
"http://melpa.milkbox.net/packages/") t)
(package-initialize)

Have fun
Thierry

  reply	other threads:[~2018-06-20  6:13 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 [this message]
2018-06-20  9:09   ` Uwe Brauer
2018-06-20 18:28     ` Thierry Banel
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

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5B29F072.4040805@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 public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).