2011/05/26

Rで順列(nPr)と組み合わせ(nCr)を計算するメモ

Rは統計や解析でよく使われるオープンソースソフトウェアですが、R用に順列(nPr, P=Permutation)と組み合わせ(nCr, C=Combination)の関数を作ったメモです。このあたりはCRAN, The Comprehensive R Archive Network (PerlのCPANに相当)を探せばあると思いますが、簡単な計算なので自作しました。

ワンライナー的な実装

# ~/lib/my.R
# Permutation and Combination
nPr <- function(n,r){ factorial(n) / factorial(n-r) }
#nCr <- function(n,r){ factorial(n) / ( factorial(r) * factorial(n-r) ) }
nCr <- function(n,r){ choose(n,r) }

factorial()は階乗を求める関数です。組み合わせのnCrは作ってからchoose()で計算できる事を知ったので、元の関数はコメントアウトしました。

% cat ~/.Rprofile ⏎
source("~/lib/my.R")

% /usr/bin/R -q -e 'nPr(12,8)' ⏎
> nPr(12,8)
[1] 19958400
> 
> 
% /usr/bin/R -q -e 'nCr(12,8)' ⏎
> nCr(12,8)
[1] 495
> 
> 

よく使う関数を定義したファイルを読込む(source())設定を~/.Rprofileに書いています。

Rの情報はGoogleで検索しにくいので"R 統計"とか、MacのR固有の情報なら"R.app"で検索するとよいです。

0 件のコメント:

コメントを投稿