グラフ出力を使用して関数を作成しようとしています。引数の値を持つ凡例を挿入したいと思います。
例えば:
f<-function(x,alpha=0.9){
....
plot(x)
legend("topleft",expression(alpha)???)
}
'expression(alpha)' は alpha の現在の値と等しくなければなりません。
どうすればそれができるか教えてもらえますか?
テスト ケースはまだ見当たりませんが、この種の質問 (式の一部を評価する必要がある場合) に対する通常の答えは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) ) )