CMplot報錯missing value where TRUE/FALSE needed

今天在使用CMplot畫曼哈頓圖時遇到一個bug:
Error in if (sum(pvalueT <= 0) != 0 || sum(pvalueT > 1) != 0) stop("p values should be at range of (0, 1).") :
missing value where TRUE/FALSE needed

> pmap <- read.csv("pmap.csv")
> CMplot(pmap, threshold = threshold, amplify = F, memo = "", file = "tiff", plot.type=c("m","q"))
Error in if (sum(pvalueT <= 0) != 0 || sum(pvalueT > 1) != 0) stop("p values should be at range of (0, 1).") : 
  missing value where TRUE/FALSE needed

看字面的意思是p值需要在(0-1)之間,去檢查了原始數(shù)據(jù),沒有在范圍外的,猜想可能是最近換了電腦,R版本的問題?;氐脚f電腦,R版本4.0.4,畫圖沒有報錯。新電腦R版本4.2.0報錯,更換到4.0.4依舊報錯。那只能猜想是CMplot版本的問題。

查看舊電腦中CMplot版本,Version:3.6.2


DESCRIPTION_old

查看新電腦中CMplot版本,Version:4.0.0


DESCRIPTION_new

果然,可以確定是CMplot版本的問題了,隨后解決問題。

1.檢查數(shù)據(jù):

> any(is.na(pmap))
[1] TRUE

存在缺失值

2.刪除缺失值所在行

> pmap<-na.omit(pmap)

3.再次檢查數(shù)據(jù)

> any(is.na(pmap))
[1] FALSE

4.重新繪圖

> CMplot(pmap, threshold = threshold, amplify = F, memo = "", file = "tiff", plot.type=c("m","q"))

繪圖成功~~

總結(jié):2022-01-13之后下載的CMplot不支持數(shù)據(jù)中有缺失值,需要剔除再進行繪圖。

如果有遇到相同問題的小伙伴,希望我今天踩的坑,可以幫到你們!

引用轉(zhuǎn)載請注明出處,如有錯誤敬請指出。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容