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)之間,去檢查了原始數據,沒有在范圍外的,猜想可能是最近換了電腦,R版本的問題。回到舊電腦,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.檢查數據:

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

存在缺失值

2.刪除缺失值所在行

> pmap<-na.omit(pmap)

3.再次檢查數據

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

4.重新繪圖

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

繪圖成功~~

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

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

引用轉載請注明出處,如有錯誤敬請指出。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容