第10章:自分自身の関数を書く 10月31日(金) 発表者:紺野憲一 「R」入門 第10章:自分自身の関数を書く 10月31日(金) 発表者:紺野憲一
10.1 関数の作成の仕方 作りたい関数 関数名:Try 内容 :2入力の和の3乗を計算する 10.1 関数の作成の仕方 作りたい関数 関数名:Try 内容 :2入力の和の3乗を計算する Try<ーfunction(x,y){ //引数はx一つ z<-(x+y)*(x+y)*(x+y) //実計算 z //zを出力 }
10.2新しい2項演算子の作成 引数が二つである関数は関数名の前後に%をつけることによって2項演算子として用いるようにできる。 例)先ほどの関数Tryを以下のように書く “%Try%”<ーfunction(x,y){・・・・・} 使用法 z<ーx %Try% y
10.3名前付きの引数と既定値 関数の引数に名前が付けられている場合、名前を指定する事でその順序を任意で指定する事ができる。 例)data<-function(name,age,number){・・・・} 関数dataの引数は以下のように指定できる tanaka<-data(“tanaka”,21,34342) tanaka<-data(“tanaka”,number=34342,age=21) tanaka<-data(age=21,number=34342,name=“tanaka”)
10.4 引数 関数中で別の関数に引数を受け継がせる事ができる。 例)rei<-function(x,y){ z=x*y Try(x,z) ※Tryは10.1で指定した関数 } 実行例 rei(2,3) 出力 1728
10.5関数中からの付値 関数内で用いられた全ての付値は関数から抜け出す時に全て失われる。 ここでzの値を残したい場合は z<<-x+y とする。 例)tasu<-function(x,y){ z<-x+y z } この関数を実行してもzに値が残る事はない。
宿題 (1)入力xとyの3乗の和を計算する関数を作れ。 (2)上の関数と同じ効果の演算子を作れ。 (3)10.5の例題において既にzに値が入っていた時に関数tasuを使用したときzの値はどうなるか。
宿題解答(1) (1)fu<-function(x,y){ i=x*x*x j=y*y*y i+j } ・・・ 以下上に同じ
宿題解答(2) (3)関数中のzと変数zはまった区別の物と認識されている。よってzの値に変化は無い。