본문 바로가기
실용적인프로그래밍/R

[R] pheatmap에 오류발생 (NA/NaN/Inf in foreign function call)

by 인포메틱스 2021. 4. 19.
반응형

pheatmap을 다루던 중 오류가 발생을 하는 경우가 있습니다.

 

그중 최근 해결한 문제들에 대해서 간단하게 포스팅 해보도록 하겠습니다.

 

Error in hclust(d, method = method) : 
  NA/NaN/Inf in foreign function call (arg 10)
Calls: pheatmap -> cluster_mat -> hclust
Execution halted

위와 같은 문제는 데이터안에 NA, nan inf가 있는지 확인하시고 만약 세개다 없을 경우 row든 column이든 평균이 0인 경우를 제외하면 됩니다.

 

# NA 확인
View(apply(mat,1,is.na))
# NAN 확인
View(apply(mat,1,is.nan))
# Inf 확인
View(apply(mat,1,is.infinite))

# row 0 제거

mat_row=apply(mat,1,mean)
mat<-mat[mat_row!=0,]

# column은 위 참조

 

또한 annotation bar 그림을 넣을때  다음과 같은 에러가 나올 때가 있습니다.

 

Error in check.length("fill") : 
  'gpar' element 'fill' must not be length 0
Calls: pheatmap ... rectGrob -> grob -> gpar -> validGP -> check.length
Execution halted

 

이때는 annotation data의 rownames가 pheatmap에 넣은 데이터일치하는지 확인하면 됩니다.

728x90
반응형

댓글