首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我用的是stat_regline_equation和ggscatter。有办法指定系数的有效数字吗?

我用的是stat_regline_equation和ggscatter。有办法指定系数的有效数字吗?
EN

Stack Overflow用户
提问于 2021-02-12 18:15:54
回答 1查看 1.9K关注 0票数 4

我发现使用stat_regline_equation (与ggscatter一起)对于快速将回归方程添加到绘图中非常有用,特别是当我对多个方面进行多个回归时。然而,它似乎停留在两个重要数字的条件下。我知道从lm中提取系数并用注释显示它们是可能的。但是对于多个方面来说,这似乎是令人畏惧和挑剔的。是否有可能在工作中(或者已经有一个我不知道的特性)来使用stat_regline_eq来完成这个任务?我有希望,因为您可以指定数字与stat_cor的事情,如r-平方和p-值!如有任何建议或帮助,将不胜感激。可复制的例子如下:

代码语言:javascript
运行
复制
library(tidyverse)
library(ggpubr)

ggscatter(diamonds, x="carat", y="table", add="reg.line") +
  facet_wrap(~color) +
  stat_regline_equation(label.y=90)

summary(lm(table ~ carat, data=filter(diamonds, color=="D")))

代码语言:javascript
运行
复制
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 56.46453    0.05438  1038.3   <2e-16 ***
carat        1.42911    0.07255    19.7   <2e-16 ***

如您所见,ggscatter为D显示的截距为0.5。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-13 08:44:33

生成方程的底层函数是.stat_lm,它是来自ggpubr包的未导出函数。正如您已经注意到的,它产生的术语都包含两个重要的数字。这是硬编码到函数本身(您可以通过运行debugonce(ggpubr:::.stat_lm)来查看,然后打印您的绘图,然后自己执行该函数)。

如果您正在使用RStudio,您可以在控制台中输入trace(ggpubr:::.stat_lm, edit = TRUE)并在弹出窗口中修改函数的代码。我没有为R使用其他GUI,但我认为这个过程应该是类似的。您要更改的行是第13-14行。

钻石数据集的演示。

代码语言:javascript
运行
复制
diamonds %>%
  filter(color == "D") %>%
  ggscatter(x = "carat", y = "table", add = "reg.line") +
  stat_regline_equation(label.y = 90)

函数中原来的第13-14行:

代码语言:javascript
运行
复制
  eq.char <- as.character(signif(polynom::as.polynomial(coefs), 
    2))

可选(如果您想按小数位指定):

代码语言:javascript
运行
复制
  eq.char <- as.character(round(polynom::as.polynomial(coefs), 
    1))

另一种选择(如果你想要5个重要数字而不是2个):

代码语言:javascript
运行
复制
  eq.char <- as.character(signif(polynom::as.polynomial(coefs), 
    5))

当不再需要修改时,运行untrace(ggpubr:::.stat_lm)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66177005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档