【R语言】P值转换成***

2022-09-21 16:50:21 浏览数 (1)

我们在做一些统计学分析的时候,总是能得到一个p值。但是在画图的时候,一般会把p值转换成星号(*),显示在图上。那么今天小编就来跟大家聊一聊,怎么用R语言,将P值转换成对应的*。

一般我们转换的标准如下

[0-0.001]-->***

[0.001-0.01]-->**

[0.01-0.05]-->*

[0.05-0.1]-->.

[0.1-1]-->NS(not significant) 不显著

当然这个也可以自己去定义,把所有>0.05的都定义成不显著。

接下来我们介绍三种方法来实现

方法一、原始的ifelse函数

代码语言:javascript复制
pval <- c(0.0004, 0.0015, 0.013, 0.044, 0.067, 0.24)
star=ifelse(pval>0.1,"NS",ifelse(pval>0.05,".",ifelse(pval>0.01,"*",ifelse(pval>0.001,"**","***"))))
pval
star

这段代码应该还是比较容易理解的,就是根据上面提到的转换标准,去不停的做判断。虽然有点繁琐,但是work。

方法二、便捷的symnum函数

代码语言:javascript复制
star1=as.character(symnum(pval,  
                    cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
                    symbols = c("***", "**", "*", ".", "NS")))
pval
star1

这段代码理解起来也不难,其实就是把刚才的转换标准写进了symnum函数的参数cutpoints 和symbols

方法三、极简stars.pval函数

代码语言:javascript复制
#需要先安装gtools这个包
#install.packages("gtools")
library(gtools)
star2=stars.pval(pval)
pval
star2

这个函数连转换的参数都帮你省了,只需要输入p值就可以了

0 人点赞