0
我正在尝试使用图形输出编写函数。 我想插入一个具有参数值的图例。将参数的值插入图例
例如:
f<-function(x,alpha=0.9){
....
plot(x)
legend("topleft",expression(alpha)???)
}
'表达(阿尔法)' 应等于阿尔法的当前值。
任何人都可以告诉我我能做到吗?
我正在尝试使用图形输出编写函数。 我想插入一个具有参数值的图例。将参数的值插入图例
例如:
f<-function(x,alpha=0.9){
....
plot(x)
legend("topleft",expression(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
更容易使用。
某些编辑要求的addtional代码,以避免覆盖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)))
你好迪文,谢谢您! 我已经设法插入一件东西,但是现在我想插入两件东西,例如, R平方和Adj-R平方。 我不知道如何完成代码: > x <-seq(0,60,length = 150) > y <-rnorm(150,0,10) > yy <-x + y > (x,yy) > abline(m) > label1 <-summary(m <-m <-dm,d [,2]〜d [,1]) > plot(x,yy) > )$'r.squared' > label1 <-summary(m)$'adj.r.squared' > legend(“topleft”,legend = bquote(???)) [sorry for my ugly text,我也必须学习这种编码:)] – DatamineR 2013-04-21 01:53:42
感叹。如果您在问题主体中张贴了经过测试的代码,那将会容易得多。用回车替换所有“>”的痛苦。考虑到程序员尊重其他程序员的懒惰。 – 2013-04-21 01:59:29
这两个表达式现在在一行中。是否也可以描述R^2和adj。 R^2彼此? – DatamineR 2013-04-21 02:12:49