Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)S
Posts
0
Comments
5
Joined
4 yr. ago

  • Sorry for the late reply here too, and thanks for your e-mail! You've probably already figured out that you can change the :var in the second babel block to point to a different table (ex: :var source=another_table) named with #+NAME: . The tags you've defined with #+TAGS: are file-level, but it's possible to change the function so that it can take an optional argument with a tag hierarchy, so you can make your own structure.

  • Edit 2026-01-07: added the missing ) and fixed the formatting

    Here's how I would approach it:

     
        
    #+STARTUP: noptag
    #+TAGS:
    #+TAGS: [ GT1 : tagA tagC tagD ]
    #+TAGS: [ GT2 : tagB tagE ]
    #+TAGS: [ GT3 : tagB tagC tagD ]
    
    #+NAME: source
    | tag  | Q1 | Q2 |
    |------+----+----|
    | tagA |  9 |    |
    | tagB |  4 |  2 |
    | tagC |  1 |  4 |
    | tagD |    |  5 |
    | tagE |    |  6 |
    
    #+begin_src emacs-lisp
    (defun my-sum-tag-groups (source)
      (cons
       (car source)
       (mapcar
        (lambda (tag-group)
          (let ((tags (org--tags-expand-group (list (car tag-group)) org-tag-groups-alist nil)))
            (cons
             (car tag-group)
             (seq-map-indexed
              (lambda (colname i)
                (apply
                 '+
                 (mapcar
                  (lambda (tag)
                    (let ((val (or (elt (assoc-default tag source) i) "0")))
                      (if (stringp val)
                          (string-to-number val)
                        (or val 0))))
                  tags)))
              (cdr (car source))))))
        org-tag-groups-alist)))
    #+end_src
    
    #+begin_src emacs-lisp :var source=source :colnames no :results table
    (my-sum-tag-groups source)
    #+end_src
    
    #+RESULTS:
    :results:
    | tag | Q1 | Q2 |
    | GT1 | 10 |  9 |
    | GT2 |  4 |  8 |
    | GT3 |  5 | 11 |
    :end:
    
      
  • There used to be one in Sao Paulo, but I think the organizer stopped paying for the meetup.com subscription. There's still a meetup page for one in Pelotas (https://www.meetup.com/Pelotas-Emacs-Meetup/) which is inactive, but maybe it can be turned into an online meetup? EmacsATX uses Google Meet; I can also set you up on BigBlueButton if you prefer something that uses free/libre software.

  • Aww shucks, thanks. =) And yeah, there's always more to learn!