0

グラフ出力を使用して関数を作成しようとしています。引数の値を持つ凡例を挿入したいと思います。

例えば:

f<-function(x,alpha=0.9){
   ....
   plot(x)
   legend("topleft",expression(alpha)???)
   }

'expression(alpha)' は alpha の現在の値と等しくなければなりません。

どうすればそれができるか教えてもらえますか?

4

1 に答える 1

1

テスト ケースはまだ見当たりませんが、この種の質問 (式の一部を評価する必要がある場合) に対する通常の答えはbquote、組み込み.()関数を使用することです。

f<-function(x,alpha=0.9){ .... plot(x) legend("topleft", bquote(.(alpha)) ) }   

`.() 関数は、評価に値するセクションを分離します。plotmath ページも参照してください。

?plotmath

時々substitute必要です:

 alpha=0.2
 substitute( alpha, list(alpha=alpha) )
 #0.2

....しかし、ほとんどの人はbquoteより簡単に作業できます。

label1 の上書きを避けるために、いくつかの編集を加えて要求された追加のコード:

x<-seq(0,60,length=150) 
 y<-rnorm(150,0,10) 
 yy<-x+y 
 d<-cbind(x,yy) 
 m<-lm(d[,2]~d[,1]) 
 plot(x,yy) > abline(m) 
 label1<-summary(m)$'r.squared' 
 label2<-summary(m)$'adj.r.squared' 
 legend("topleft", legend=bquote( R^2==.(label1)*";"~Adj.R^2==.(label2) ) )
于 2013-04-20T22:07:09.113 に答える