Skip to content

[Code Quality] Inconsistent NA checking with suppressWarnings #7

@loganylchen

Description

@loganylchen

Description

R/GuitarPlot.R.generate_guitar_coordinates 函数中(第4-10行),使用了 suppressWarnings(is.na(...)) 的模式来检查NA值:

suppressWarnings(
  if (is.na(GuitarCoordsFromTxDb)&is.na(txdb)&is.na(genome)) {
    stop(...)
  } 
)

if ( suppressWarnings(is.na(GuitarCoordsFromTxDb))){ 
  if (suppressWarnings(is.na(txdb))) {

Impact

  • is.na() 对复杂对象(如TxDb、GRangesList)会产生警告
  • 这种检查方式不够健壮

Suggested Fix

使用 is.null() 或自定义检查函数:

# 更好的方式
.is_missing <- function(x) {
  is.null(x) || (length(x) == 1 && is.na(x))
}

if (.is_missing(GuitarCoordsFromTxDb) && .is_missing(txdb) && .is_missing(genome)) {
  stop(...)
}

File

R/GuitarPlot.R lines 4-14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions