这是一个关于问题的后续。当我运行下面给出的代码时,我得到了一个带有两个R2和p值的图,但是p值为0。这可能是由于非常小的p值造成的。我尝试将数字增加到20(这里是signif(..p.value ..,digits = 4)
),但没用。我宁愿注明确切的p值或使用星号,例如if (p<0.002) star='**' else if (p>=0.002&p<0.05) star='*' else star=''
。此外,我想在图表中列出r值。请看一下,让我知道哪部分需要修改。期待您的回复!
更新
@eipi10提供的添加p值的答案代码有效,但仍然寻求答案关于如何在ggplots中添加相关系数(r)。
代码:
library(dplyr)
library(ggplot2)
library(ggpmisc)
df <- diamonds %>%
dplyr::filter(cut%in%c("Fair","Ideal")) %>%
dplyr::filter(clarity%in%c("I1" , "SI2" , "SI1" , "VS2" , "VS1", "VVS2")) %>%
dplyr::mutate(new_price = ifelse(cut == "Fair",
price* 0.5,
price * 1.1))
formula <- y ~ x - 1
p <- ggplot(df, aes(x,y, color=factor(cut)))
p <- p + stat_smooth(method = "lm", formula = y ~ x-1, size = 1, level=0.95)
p <- p + geom_point(alpha = 0.3)
p <- p + stat_poly_eq(aes(label = paste(..rr.label..)),
label.x.npc = "right", label.y.npc = 0.15, formula = formula,
parse = TRUE, size = 3) +
stat_fit_glance(method = 'lm', method.args = list(formula = formula),
geom = 'text', aes(label = paste("P-value = ",
signif(..p.value.., digits = 4), sep = "")),label.x.npc = 'right',
label.y.npc = 0.35, size = 3)
print(p)
pf(5.836e06, 1, 1583, lower=FALSE, log.p=TRUE)/log(10)
= -2824.782 - Ben Bolkerif (p<0.002) star='**' else if (p>=0.002&p<0.05) star='*' else star=''
。对于添加相关系数和星号有什么想法吗?Ben,在@eipi10代码中如何/在哪里加入您的log(10)比例代码? - Aby