我正在尝试编写一个带有图形输出的函数。我想插入一个带有参数值的图例。
例如:
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) ) )