我們在做一些統(tǒng)計學分析的時候,總是能得到一個p值。但是在畫圖的時候,一般會把p值轉(zhuǎn)換成星號(*),顯示在圖上。那么今天小編就來跟大家聊一聊,怎么用R語言,將P值轉(zhuǎn)換成對應的*。

一般我們轉(zhuǎn)換的標準如下

[0-0.001]-->***
[0.001-0.01]-->**
[0.01-0.05]-->*
[0.05-0.1]-->.
[0.1-1]-->NS(not significant) 不顯著
當然這個也可以自己去定義,把所有>0.05的都定義成不顯著。
接下來我們介紹三種方法來實現(xiàn)
方法一、原始的ifelse函數(shù)
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
這段代碼應該還是比較容易理解的,就是根據(jù)上面提到的轉(zhuǎn)換標準,去不停的做判斷。雖然有點繁瑣,但是work。

方法二、便捷的symnum函數(shù)
star1=as.character(symnum(pval,
cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1),
symbols = c("***", "**", "*", ".", "NS")))
pval
star1
這段代碼理解起來也不難,其實就是把剛才的轉(zhuǎn)換標準寫進了symnum函數(shù)的參數(shù)cutpoints 和symbols

方法三、極簡stars.pval函數(shù)
#需要先安裝gtools這個包
#install.packages("gtools")
library(gtools)
star2=stars.pval(pval)
pval
star2
這個函數(shù)連轉(zhuǎn)換的參數(shù)都幫你省了,只需要輸入p值就可以了
