自作関数の作り方(p107)
ここでは、自分で関数を作る方法を説明します。本書のp106のcohenのdのように複数の変数に関して同じ計算をする場合、その都度「方法1」のような式を記述するのは効率が良くありませんし、ミスが生じる可能性もあります。そこで、決められた計算(処理)を行う際に、自分で関数を作成すると便利です。
最初からp107のような自作関数を作るのは難しいので、まずは単純な3つの値を入れて平均を求める関数を自作してみます。もちろんすでに紹介したmean( )で計算できますが、ここではあえてmean2( )という関数を作成します。定義する計算式は以下のとおりです。
それでは、作成してみましょう。関数を作って実行する手順は2ステップです。
1. 関数を定義する
上記の式を関数で定義するには以下のスクリプトになります。
mean2 <- function(x, y, z){
result <- (x + y + z)/3
result
}
このスクリプトの意味は、新しく作成する関数の名前はmean2とする。
そして、その次の
function( ){
}
の部分が、関数ということを示します。つまり、「mean2という名前の関数を作成するよ」という宣言です。
関数を意味するfunctionの後の( )の中には、引数を指定します。ここでは、3つの数値を入れるので、x, y, zとしています。そして、{ } の中に計算をするステップを指定します。
result <- (x + y + z)/3 は引数として指定した3つの数値を使って計算をして、その結果をresultとして保存する という意味です。次の行の resultは その結果を表示するためのスクリプトです。
それでは、これを一旦実行して、R環境にmean2という関数を定義します。
> mean2 <- function(x, y, z){
+ result <- (x + y + z)/3
+ result
+ }
2. 関数を実行する
上記のスクリプトを実行すれば、Rの中にmean2( )という関数が定義されます。次にその関数を使う方法です。これは、これまで説明してきた既存の関数と同じです。例えば、4, 6, 9の平均を求めたければ、
mean2(4, 6, 9)
を実行すれば計算結果が表示されます。
> mean2(4, 6, 9)
[1] 6.333333
それでは改めて見てみましょう。function(x, y, z) というのは、1つ目の引数がx、2つ目の引数がy、3つ目の引数はzというように、x, y, zにそれぞれの数値を代入していることになります。したがって、このmean2は、3つの引数を指定しないとうまくいきません。function( )で指定したx, y, zは、{ }内で使用した表記と一致していれば構いませんので、x1, x2, x3でも構いません。
これをふまえて、式を確認しながら、p107の効果量の自作関数を読み解いてみてください。
Copyright © Wakita Takafumi.