R 在不单独创建lm obejct的情况下,将p值添加到ggplot

R 在不单独创建lm obejct的情况下,将p值添加到ggplot,r,ggplot2,ggpmisc,R,Ggplot2,Ggpmisc,我必须创建大量(100+个)线性模型。我想将p值(以及可能的R2)添加到每个图中。我知道使用ggpmisc可以做到这一点。在这里,我使用stat\u fit\u glance添加p值。我的“问题”是,这两种方法都要求我先运行lm,然后作为formula=My_lm插入 由于我必须创建大量的绘图,我想知道是否有一种方法可以避免首先创建lm对象,而只是在生成ggplot时计算它?我可以使用stat\u compare\u means对箱线图进行t检验,我真的希望找到一种使用lm的方法 我的代码如下。

我必须创建大量(100+个)线性模型。我想将p值(以及可能的R2)添加到每个图中。我知道使用
ggpmisc
可以做到这一点。在这里,我使用
stat\u fit\u glance
添加p值。我的“问题”是,这两种方法都要求我先运行
lm
,然后作为formula=My_lm插入

由于我必须创建大量的绘图,我想知道是否有一种方法可以避免首先创建lm对象,而只是在生成ggplot时计算它?我可以使用
stat\u compare\u means
对箱线图进行t检验,我真的希望找到一种使用lm的方法

我的代码如下。我希望能够跳过第一行代码:

my_lm <- lm(y ~ x)


ggplot(data = complete, aes(x= x, y = y))+  
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
              method.args = list(data = complete, formula = my_lm),
              geom = 'text',
              aes(label = paste("p-value = ", signif(..p.value.., digits = 4), sep = "")),
              label.x = 8.5, label.y = 25, size = 3)

my_lm借助于
ggpmisc::stat_fit_glance
method.args=list(formula=y~x)

这意味着您不需要先运行
lm

只能为线性模型指定公式

library(ggpmisc)
set.seed(1)
n <- 100
x <- 8+rnorm(n)
y <- 11+x+2*rnorm(n)
complete <- data.frame(x, y)

summary(lm(y~x))
ggplot(data = complete, aes(x= x, y = y))+  
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
       method.args = list(formula = y ~ x),  geom = 'text', 
       aes(label = paste("p-value=", signif(..p.value.., digits = 4), 
                      "   R-squared=", signif(..r.squared.., digits = 3), sep = "")),
       label.x = 8.5, label.y = 25, size = 5)
库(ggpmisc)
种子(1)

n我强烈警告不要运行100+线性模型并报告每个p值,分析的目的是什么?当我这样做时,我会得到一个“离散值提供给连续比例”错误。有没有办法解决这个问题?@Skumin我现在测试了上面的代码,它运行时没有错误。您使用的是相同的数据集还是不同的数据集?