orgtbl-aggregate 20160421.726(in MELPA)
Create an aggregated Org table from another one

概要

org-aggregate.el は、 org-mode の表に 集計機能 を提供します。

各項目の合計・平均・最大値・最小値・個数などを計算する
dblock (dynamic block)を作成します。

とても機能は多いのですが、その裏には Calc パッケージがあるからです。

CalcパッケージはEmacs上で数値計算・数式計算を行うものです。

org-aggregateが何物なのかは、とりあえず使用例を見た方が早いです。

なお、*C-c C-x i* を使うと対話的にdblockを入力できます。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてorgtbl-aggregateを使う方は
以下のコマンドを実行します。

M-x package-install orgtbl-aggregate

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name orgtbl-aggregate

使用例 org-aggregate-sample.org(以下のコードと同一)

* org-aggregateの使用例
** 元の表
#+TBLNAME: original
| Day       | Color | Level | Quantity |
|-----------+-------+-------+----------|
| Monday    | Red   |    30 |       11 |
| Monday    | Blue  |    25 |        3 |
| Thuesday  | Red   |    51 |       12 |
| Thuesday  | Red   |    45 |       15 |
| Thuesday  | Blue  |    33 |       18 |
| Wednesday | Red   |    27 |       23 |
| Wednesday | Blue  |    12 |       16 |
| Wednesday | Blue  |    15 |       15 |
| Turdsday  | Red   |    39 |       24 |
| Turdsday  | Red   |    41 |       29 |
| Turdsday  | Red   |    49 |       30 |
| Friday    | Blue  |     7 |        5 |
| Friday    | Blue  |     6 |        8 |
| Friday    | Blue  |    11 |        9 |
** 曜日別のLevelの平均とQuantityの合計
#+BEGIN: aggregate :table "original" :cols "Day mean(Level) sum(Quantity)"
| Day       | mean(Level) | sum(Quantity) |
|-----------+-------------+---------------|
| Monday    |        27.5 |            14 |
| Thuesday  |          43 |            45 |
| Wednesday |          18 |            54 |
| Turdsday  |          43 |            83 |
| Friday    |           8 |            22 |
#+END:
** 項目数・合計・最小値・最大値・中央値
#+BEGIN: aggregate :table "original" :cols "count() sum(Quantity)"
| count() | sum(Quantity) |
|---------+---------------|
|      14 |           218 |
#+END:

#+BEGIN: aggregate :table "original" :cols "min(Level) max(Quantity) median(Level)"
| min(Level) | max(Quantity) | median(Level) |
|------------+---------------+---------------|
|          6 |            30 |          28.5 |
#+END:


** DayとColorが同じ項目を数える
#+BEGIN: aggregate :table "original" :cols "count() Day Color"
| count() | Day       | Color |
|---------+-----------+-------|
|       1 | Monday    | Red   |
|       1 | Monday    | Blue  |
|       2 | Thuesday  | Red   |
|       1 | Thuesday  | Blue  |
|       1 | Wednesday | Red   |
|       2 | Wednesday | Blue  |
|       3 | Turdsday  | Red   |
|       3 | Friday    | Blue  |
#+END:
** Red/Blueそれぞれの平均と合計
#+BEGIN: aggregate :table "original" :cols "Color  mean(Level) sum(Quantity)"
| Color |   mean(Level) | sum(Quantity) |
|-------+---------------+---------------|
| Red   | 40.2857142857 |           144 |
| Blue  | 15.5714285714 |            74 |
#+END:

#+END_SRC

#+END_SRC

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。