使用ggplot2和ggpmisc的stat_fit_glance无法输出两位小数R²值求助
解决方案
你遇到的尾0被自动省略问题,本质是round()返回的是数值型结果,R在拼接字符串时会自动舍弃数值末尾无意义的0,改用字符串格式化函数强制固定两位小数输出即可解决。
只需将代码中stat_fit_glance里的aes(label)参数替换为以下写法即可:
aes(label = paste("R^2 ==", sprintf("%.2f", ..r.squared..), sep = "~"))
sprintf("%.2f", x)会直接将数值x格式化为固定保留两位小数的字符串,哪怕第二位小数是0也会强制保留,完美匹配你需要的R²=0.70、R²=0.90显示效果。
如果你更习惯用format函数,也可以用如下等价写法:
aes(label = paste("R^2 ==", format(round(..r.squared.., 2), nsmall = 2), sep = "~"))
其中nsmall = 2参数指定了最少保留2位小数,同样会自动补全末尾的0。
内容的提问来源于stack exchange,提问作者Arindan Mandal
相关产品推荐
相关产品推荐

