(R)順列と組み合わせパターン
順列の数や組み合わせの数はすぐに計算出来ますが、必要なのが数ではなく順列パターンや組み合わせパターンそのものの場合にはどうすればよいのか考えてみます。
今回使う関数はデフォルト設定では使うことが出来ないので、[パッケージ]-[パッケージのインストール]でgtoolsというパッケージをインストールしてください。
次にパッケージをインポートします。
> library(gtools)
これで準備は完了です。
パターン生成にはこのパッケージのpermutations関数、combinations関数を用います。
使用例
- 順列 (nPr通り)
> permutations(n=3,r=2,v=c(3,5,7)) [,1] [,2] [1,] 3 5 [2,] 3 7 [3,] 5 3 [4,] 5 7 [5,] 7 3 [6,] 7 5
- 組み合わせ (nCr通り)
> combinations(n=3,r=2,v=c(3,5,7)) [,1] [,2] [1,] 3 5 [2,] 3 7 [3,] 5 7
- 注意点
どちらもn>length(v)の時はエラーになります。
n
> combinations(n=3,r=2,v=c(3,5,7,9)) # 9が使われていない! [,1] [,2] [1,] 3 5 [2,] 3 7 [3,] 5 7
なので極力n=length(v)となっているかチェックしたほうが良いかと思います。