「R」入門 第10章:自分自身の関数を書く 10月31日(金) 発表者:紺野憲一 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関数中からの付値 • 関数内で用いられた全ての付値は関数か ら抜け出す時に全て失われる。 例)tasu<-function(x,y){ z<-x+y z } この関数を実行してもzに値が残る事はない。 • ここでzの値を残したい場合は z<<-x+y とする。 宿題 (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)”%fu%”<ーfunction(x,y){ ・・・ 以下上に同じ 宿題解答(2) (3)関数中のzと変数zはまった区別の物と認 識されている。よってzの値に変化は無い。
© Copyright 2024 ExpyDoc