Rの特殊な関数


Rの関数への代入
Rの通常の関数は、x<-sqrt(2)のように使って、値を返す。しかし、attr(x,“class”)<-“name"のように、関数に代入しているように見えるような使い方ができる関数もある。このような関数は、以下のように定義することができる。

"test<-" <- function(x,value) x<-value^2
x<-1
test(x)<-2

この結果として、xには4は代入されることになる。ここで重要なのは、第二引数の名前をvalueにすることである。そうでないとエラーが生じる。これを応用すると、tklistboxのselectionをtclvalueを使って変更することが可能になる。

"tclvalue<-.tkwin" <- function(x,value){
  tkselection.clear(x,0,'end')
  tkselection.set(x,value)
}

このように定義しておけば、tclvalue(lb)<-3とすると、tklistboxの3番目が選ばれる。