前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】P值转换成***

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

作者头像
生信交流平台
发布2022-09-21 16:50:21
5840
发布2022-09-21 16:50:21
举报
文章被收录于专栏:用户7627119的专栏

我们在做一些统计学分析的时候,总是能得到一个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值就可以了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档