From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uwe Brauer Subject: Re: very long table calc expressions ? Date: Wed, 20 Jun 2018 11:09:19 +0200 Message-ID: <87fu1h25a8.fsf@mat.ucm.es> References: <87k1qu1yl5.fsf@mat.ucm.es> <5B29F072.4040805@free.fr> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=sha256; protocol="application/pkcs7-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVZ7R-0004DD-L5 for emacs-orgmode@gnu.org; Wed, 20 Jun 2018 05:09:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVZ7N-0002GZ-Ch for emacs-orgmode@gnu.org; Wed, 20 Jun 2018 05:09:37 -0400 Received: from [195.159.176.226] (port=49887 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fVZ7N-0002GF-0B for emacs-orgmode@gnu.org; Wed, 20 Jun 2018 05:09:33 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1fVZ5D-0005qL-FF for emacs-orgmode@gnu.org; Wed, 20 Jun 2018 11:07:19 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > Le 19/06/2018 19:21, Uwe Brauer a =C3=A9crit : > You may want to take a look at the orgtbl-aggregate package available = on=20 > 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 su= m,=20 > mean, filtering and much more. > Documentation here: https://github.com/tbanel/orgaggregate 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 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) Take the following table #+TBLNAME: raw-data | Test | |------| | 0 | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | | | | | | Important are the last three empty strings.=20 I know, thanks to the https://orgmode.org/worg/org-tutorials/org-lookups.html how to count the frequencies of the numbers in the column in an interval u= sing the=20 function=20 #+TBLNAME: stat-table #+ATTR_HTML: :border 2 :rules all :frame border | | lower bound | upper bound | frequency | |----+-------------+-------------+-----------| | NP | 0 | 0 | 1 | | SS | 0 | 4.9 | 5 | | AP | 5 | 6.9 | 2 | | NT | 7 | 8.9 | 2 | | SB | 9 | 10 | 1 | #+TBLFM: $4=3D'(length (org-lookup-all '($2 $3) '(remote(raw-data,@2$1..@>$= 1)) nil 'in-interval));N #+BEGIN_SRC emacs-lisp (defun in-interval (bounds el) (and (>=3D el (car bounds)) (<=3D el (cadr bounds)))) #+END_SRC 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 --=-=-= Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s 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 EwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE9MDsGA1UEAxM0Q09NT0RPIFJT QSBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAL6znlesKHZ1QBbHOAOY08YYdiFQ8yV5C0y1oNF9Olg+nKcxLqf2 NHbZhGra0D00SOTq9bus3/mxgUsg/Wh/eXQ0pnp8tZ8XZWAnlyKMpjL+qUByRjXCA6RQyDMqVaVU kbIr5SU0RDX/kSsKwer3H1pT/HUrBN0X8sKtPTdGX8XAWt/VdMLBrZBlgvnkCos+KQWWCo63OTTq Rvaq8aWccm+KOMjTcE6s2mj6RkalweyDI7X+7U5lNo6jzC8RTXtVV4/Vwdax720YpMPJQaDaElmO upyTf1Qib+cpukNJnQmwygjD8m046DQkLnpXNCAGjuJy1F5NATksUsbfJAr7FLUCAwEAAaOCATww ggE4MB8GA1UdIwQYMBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSCr2yM+MX+lmF8 6B89K3FIXsSLwDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADARBgNVHSAECjAI MAYGBFUdIAAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RP UlNBQ2VydGlmaWNhdGlvbkF1dGhvcml0eS5jcmwwcQYIKwYBBQUHAQEEZTBjMDsGCCsGAQUFBzAC hi9odHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9SU0FBZGRUcnVzdENBLmNydDAkBggrBgEF BQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQB4XLKBKDRP PO5fVs6fl1bsj6JrF/bz9kkIBtTYLzXN30D+03Hj6OxCDBEaIeNmsBhrJmuubvyE7HtoSmR809Ag cYboW+rcTNZ/8u/Hv+GTrNI/AhqX2/kiQNxmgUPt/eJPs92Qclj0HnVyy9TnSvGkSDU7I5Px+TbO +88G4zipA2psZaWeEykgzClZlPz1FjTCkk77ZXp5cQYYexE6zeeN4/0OqqoAloFrjAF4o50YJafX 8mnahjp3I2Y2mkjhk0xQfhNqbzlLWPoT3m7j7U26u7zg6swjOq8hITYc3/np5tM5aVyu6t99p17b TbY7+1RTWBviN9YJzK8HxzObXYWBf/L+VGOYNsQDTxAk0Hbvb1j6KjUhg7fO294F29QIhhmiNOr8 4JHoy+fNLpfvYc/Q9EtFOI5ISYgOxLk3nD/whbUe9rmEQXLp8MB933Ij474gwwCPUpwv9mj2PMnX oc7mbrS22XUSeTwxCTP9bcmUdp4jmIoWfhQm7X9w/Zgddg+JZ/YnIHOwsGsaTUgj7fIvxqith7Do JC91WJ8Lce3CVJqb1XWeKIJ84F7YLXZN0oa7TktYgDdmQVxYkZo1c5noaDKH9Oq9cbm/vOYRUM1c Wcef20Wkyk5S/GFyyPJwG0fR1nRas3DqAf4cXxMiEKcff7PNa4M3RGTqH0pWR8p6EjCCBScwggQP oAMCAQICEE7Lzt6K2qdvK9u3yC3zxrowDQYJKoZIhvcNAQELBQAwgZcxCzAJBgNVBAYTAkdCMRsw GQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNP TU9ETyBDQSBMaW1pdGVkMT0wOwYDVQQDEzRDT01PRE8gUlNBIENsaWVudCBBdXRoZW50aWNhdGlv biBhbmQgU2VjdXJlIEVtYWlsIENBMB4XDTE4MDEwNTAwMDAwMFoXDTE5MDEwNTIzNTk1OVowHzEd MBsGCSqGSIb3DQEJARYOb3ViQG1hdC51Y20uZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQDB0KByP1PxaWg+JH5Qwf5YGQjW4SOCIRNNBUtGjqrwL/ceFL5vjwCqRx3W4In6zSAaD6QW JCDN+TIT5vuyc1A4QmV/PbtrwdzQHoz4hMGJwslEK2nW4GSPRWGHd24R2cYeCBkf5vlbVQgxV7ro HIE11L/ktxMfcKYrRWslQYZDcMKbNCZJSffHkmCD0wajLyuLZlKqvtTLxzC+5o2xBJ12mr1aPp2s NMTx1NJVcae1i0Dqc0TnvK6+v1dK/Xgi5yLYwKbBz73MLANGYQWYzcwrSoq4V1qjNBLDYVLtckOo q+Wq17vLa1g9emTQoUwKNzwwufEzBnK99sZBYaxnyxrtAgMBAAGjggHkMIIB4DAfBgNVHSMEGDAW gBSCr2yM+MX+lmF86B89K3FIXsSLwDAdBgNVHQ4EFgQU/yq7rTIULvkJSlEq4KWXTrPRa4IwDgYD VR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwIAYDVR0lBBkwFwYIKwYBBQUHAwQGCysGAQQBsjEB AwUCMBEGCWCGSAGG+EIBAQQEAwIFIDBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEBATArMCkGCCsG AQUFBwIBFh1odHRwczovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzBaBgNVHR8EUzBRME+gTaBLhklo dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FDbGllbnRBdXRoZW50aWNhdGlvbmFuZFNl Y3VyZUVtYWlsQ0EuY3JsMIGLBggrBgEFBQcBAQR/MH0wVQYIKwYBBQUHMAKGSWh0dHA6Ly9jcnQu Y29tb2RvY2EuY29tL0NPTU9ET1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxD QS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAZBgNVHREEEjAQgQ5v dWJAbWF0LnVjbS5lczANBgkqhkiG9w0BAQsFAAOCAQEApuOJDDCV6tlL2wKIIuD1v5nx4Pgnri5Q IGbvJw1HKYGogyFqWB8cbD5eKlL/MkmSkWbWQ+y+hkSmV8CFZ/b9LkLDholupp+SPtWC1N95mhAn 4V5HyrZEF7O4hTxL7OFz4nuwvp+rNu4shwNl296kfJeEgtNhNASFc44tHpbFC0lz8t5RA1j0DUUp Uxr8FhaMipBhPJAx2hyiD5U3ahMhQYNbqv38e2ESnbRBsoulv09R3gUtUfiPWP3Ft7OKFUYKWr04 jPN5VM1uu9E1Ga2uKi+iRpIu+BNfpaeifNuVc2satnLZb1UAzmUwoaT9y9nwqcajDSk4t5XptUrp dD/OQDGCAm4wggJqAgEBMIGsMIGXMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5j aGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE9MDsG A1UEAxM0Q09NT0RPIFJTQSBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBD QQIQTsvO3orap28r27fILfPGujANBglghkgBZQMEAgEFAKCBkzAYBgkqhkiG9w0BCQMxCwYJKoZI hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA2MjAwOTA5MTlaMCgGCSqGSIb3DQEJDzEbMBkwCwYJ YIZIAWUDBAECMAoGCCqGSIb3DQMHMC8GCSqGSIb3DQEJBDEiBCAjEkSyKd5b9pih3EOcHmSdtGQA 9YvNEe8PP2XsghuVQjANBgkqhkiG9w0BAQEFAASCAQA2V+93fkrWQsz4+0/WYAmbqVqWj/WPE1Wr qdGSuclypWLIdbd9NMPkZMQ4l5ODg+z7uNbHmFLK/dEKgyNfV+BkOQfMmyf/XnKR1l1ixCQLMT1U Q0l+GvMhJkhStKix8px/5VB+4HrodfTwCH+u/aH+9681XSVup4vGgEmM3kjOeoZ0Ww3L7MyObjPQ ZwWcQChJKlxl0PPzo3ICxY+KCGQLs/aQ1vH/NLhfnA6s7zllivP0w+xz1LKd0nU7kFJ/uvLaK2FF wc4gnJ+Iqd7f0m5z9tNU31o099ePcX7oRM1KktOKHw//r4lTYJ317R04ESHteK0XFZD29+74Cecq iKwbAAAAAAAA --=-=-=--