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 回答