読者です 読者をやめる 読者になる 読者になる

R言語による電子カルテデータの二次利用

~R言語初心者がデータ処理を楽しめるように基本的内容中心のサイトです~

関数の作り方

関数 R言語

同じ処理を繰り返しコードとして書くなら、関数を作ってしまうのが便利です。

関数の作り方は、

関数名 <- function (引数) {
  計算式等の処理
  戻り値 
}

のような書き方です。引数は必要なければ、不要です。
表示だけの関数を練習で作ってみます。

hello <- function(){
  print("hello")
}

実行してみましょう。引数がない場合は、関数名に引数のないカッコをつけて実行です。
f:id:r_beginner:20160306090657j:plain

まずは手始めにBMI関数を作ってみましょう。
BMI(Body Mass Index) = BW(kg)/{身長(m) ✕ 身長(m)}
上の計算式を使って、身長、体重を引数にして、結果を返す関数です。

make_BMI <- function(height,BW){
  BMI <- BW / (height)^2
  return(BMI)
}

引数に身長1.72m、体重61キロを入れてみると、
f:id:r_beginner:20160306091938j:plain
体重61キロの人がたくさんいる集団では、61の入力を省きたくなります。そんな時はデフォルト値を設定しておきましょう。引数のBWをBW=61と変更します。

make_BMI <- function(height,BW=61){
  BMI <- BW / (height)^2
  return(BMI)
}

体重の数値を入れても、入れなくても計算できるようになります。入れない場合はデフォルトの体重61キロを使用して計算します。
f:id:r_beginner:20160306092436j:plain

たくさんの関数をプログラムの中に組み込むと、いちいち戻り値が表示されるのが煩わしくなります。
そんな時はinvisibleで消してください。

make_BMI <- function(height,BW=61){
  BMI <- BW / (height)^2
  invisible(BMI)
}

今度は戻り値がinvisibleなので、実行しても結果は見えません。
f:id:r_beginner:20160306093014j:plain
一度オブジェクトに代入して表示すると、
f:id:r_beginner:20160306093132j:plain

今度はきちんと表示されていますね。
もっと複雑な関数をたくさん作って、効率的に仕事をしましょう。