我尝试格式化在基本图形系统中创建的回归曲线的标签。基本上,该标签从变量中提取斜率、截距和 r 方值。示例如下:
plot(rnorm(10), type = "n", xlim = c(0, 100), ylim = c(0, 100))
text(x = 0, y = 100, adj = c(0, NA), bquote(paste(y == .(a) * x + .(b), ", R"^2 == .(r2))), cex = 0.7)
然而,这生成了一个看起来不太聪明的标签:
y = 1.159019x+-1.537708, R<sup>2</sup>=0.7924927
我想要的是将数字四舍五入到小数点后第二位,即
y = 1.16x-1.54, R<sup>2</sup>=0.79
我在两个帮助文档中都查找过text()
and bquote()
但并没有找到太多有用的信息。
我也尝试过包裹.(a)
, .(b)
and .(r2)
in format()
与参数nsmall = 2
,但没有成功。
有人可以帮我解决这个问题吗?提前谢谢了!
附:我认为我的问题中有一个隐藏的任务。在上面的例子中,b
是负数。我知道我可能可以省略"+"
我的表达式中的运算符仅使用负号b
加入我的方程式。但是,如果我不知道 的符号怎么办?b
提前?有没有一种巧妙的方法可以形成标签而无需使用if()
然后编写两个略有不同的版本text()
?再次感谢!