驚くべきことに、Rには順列/組み合わせを計算する組み込み関数はない。
従ってRで順列/組み合わせを計算するには、自作関数を書き下ろすか、既存パッケージを利用する必要がある。
順列/組み合わせを計算できるパッケージは複数存在する。英語圏でよく言及されているのは以下2つである。
(1) gtools
(2) combinat
両者の違いは、gtoolsは「Various R Programming Tools」と称する通り、便利な関数の寄せ集めでありその一部に順列や組み合わせの関数を含むものであるのに対し、combinatは「combinatorics utilities」と称する通り、順列・組み合わせの計算に特化している点である。
両方見比べて自分のニーズにあうものを使用するのがよいであろう。
いずれも単に順列/組み合わせの総数を出力するだけなく、全ての順列・組み合わせの文字列を出力してくれるので便利である。
いずれのパッケージを使用しても、計算対象の要素数が増えるにつれ順列・組み合わせは爆発的に増加するため、計算に長時間を要したり、結果そのものがかえって来ないかもしれない。例えば33C20を試したところ私の環境ではいずれも出力を得ることができなかった。
コメント