社会人が統計学の基礎を学び、実務で活かす

Rコード:順列・組み合わせのすべてのパターンを発生させる。

スポンサーサーチ

【目次】
すべての組み合わせのパターンを発生させる。
すべての順列のパターンを発生させる。

すべての組み合わせのパターンを発生させる。

統計学やネットワーク解析において、順列や組み合わせのすべてのパターンを発生させたいことがあります。

まずは、組み合わせの発生のさせ方から見ていきます。

例えば、「白」「黒」「青」「赤」の4つの色から、2つを選ぶ組み合わせをすべて列挙したいとします。

4つの中から2つを選ぶ組み合わせは、{}_4 C_{2}=6通りですから、この6パターンすべてを羅列してみます。

ちなみに、Rで組み合わせが何パターンあるかは、choose()関数で以下のように求めることができます。

choose(n=4,k=2)
> choose(n=4,k=2)
[1] 6

そして、この6パターンをすべて表示させるにはcombn()関数を利用して以下のように記述します。

combn(x=c("白","黒","青","赤"),m=2)
>combn(x=c(“白”,”黒”,”青”,”赤”),m=2)
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,] “白” “白” “白” “黒” “黒” “青”
[2,] “黒” “青” “赤” “青” “赤” “赤”

このように、縦に6列ですべてのパターンを発生させることができました。

すべての順列のパターンを発生させる。

次にすべての順列のパターンを発生させる方法です。

前述の例と同じように「白」「黒」「青」「赤」の4つの色から、2つを選んで、順番も加味した上でのパターン、つまり{}_4 P_{2}=12通りのすべてのパターンを発生させてみましょう。

ちなみに、順列が何通りあるかを計算する関数は、Rのデフォルトでは筆者が知る限りないので、自分で作ってみました。

# 順列が何通りあるかを計算する関数
perm <- function(n,k){choose(n,k) * factorial(k)}

この関数を利用して、{}_4 P_{2}は以下の通り12パターンあると計算できます。

> perm(4,2)
[1] 12

それでは、この12通りをすべて発生させる方法です。色々なパッケージがあるので、今回はgtoolsというパッケージを使ってみます。

まずは、以下のようにパッケージをインストールして、使える状態にしましょう。

# 順列を列挙する関数permutationsを含むパッケージ
# gtoolsをインストール。
install.packages("gtools") 
library(gtools)

インストールして使える状態になったら、以下のプログラムで順列のパターンをすべて列挙することができます。

permutations(n=4,r=2,v=c("白","黒","青","赤"),repeats.allowed = F)

以下のように横12列に12パターンすべてを列挙しています。

> permutations(n=4,r=2,v=c("白","黒","青","赤"),repeats.allowed = F)
     [,1] [,2]
[1,] "白" "赤"
[2,] "白" "青"
[3,] "白" "黒"
[4,] "赤" "白"
[5,] "赤" "青"
[6,] "赤" "黒"
[7,] "青" "白"
[8,] "青" "赤"
[9,] "青" "黒"
[10,] "黒" "白"
[11,] "黒" "赤"
[12,] "黒" "青"

プログラミングとソフトウェア

スポンサー募集中。

統計ドットリンクでは広告出稿をご希望のスポンサー様を募集しております。ページビューなどは、「お問い合わせ」からご連絡ください。

更新・勉強会などの情報を受け取る。

以下からFacebookページをフォローもしくは、メールマガジンへの登録をすると、更新情報、勉強会、講習会、交流会の案内など各種情報を受け取ることができます。

↑こちらからFacebookページをフォロー。
 

メルマガ登録はこちら

理系の就職・職業訓練

統計ドットリンクでは、理系の大学生、大学院生、第二新卒の就職や転職を応援しています。職業訓練、求人やエージェントなどの必要な情報を選別し、紹介しています。 就職、職業訓練の情報を確認する。
PAGETOP
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.