我们在做一些统计学分析的时候,总是能得到一个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函数
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函数
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函数
#需要先安装gtools这个包
#install.packages("gtools")
library(gtools)
star2=stars.pval(pval)
pval
star2
这个函数连转换的参数都帮你省了,只需要输入p值就可以了