簡體   English   中英

如何使用data.frame列中的IF計數缺少值(NA)的單元格?

[英]how to use IF count in a data.frame column the cells wiht missing value(NA)?

我有一個名為“ selPOGs2”的data.frame對象。 在此data.frame中,我將添加一列“ GeneID”。 將data.frame轉換為字符后,將數據添加到“ GeneID”列中。 這些數據從查詢返回到數據庫。 如果在數據庫中找不到答案,則在GeneID列的相應單元格中放置一個NA。 該列如下所示:

大段引用

   GeneID
  1. NA
  2. NA
  3. 14297062
  4. 14006762
  5. 11538038

大段引用

我想計算在GeneID列中找到NA的次數。 我寫了以下代碼:

  #convert selPOGs2 from factor to character (to make is is really character and not factor)
  selPOGs2 <- data.frame(lapply(selPOGs2, as.character), stringsAsFactors=FALSE)

  a=0; is.numeric(a)
  for(c in selPOGs2[,1])
  {b <- as.character(c) 
      if(b[1]== NA_character_) 
      {  a=a+1   }
      else {a=a}
  }

我收到以下錯誤:

Error in if (b[1] == NA_character_) { : missing value where TRUE/FALSE needed

無論我將b [1]與“ 14297062”還是與任何其他“ ...”進行比較,我都會遇到相同的錯誤。

如果我注釋與IF相關的代碼,則c或b [1]的值報告為“ 14297062”,例如

      a=0; is.numeric(a)
      for(c in selPOGs2[,1])
      {b <- as.character(c) 
          #if(b[1]== NA_character_) 
          #{  a=a+1   }
          #else {a=a}
      }

但是,一旦取消注釋IF行,c或b [1]的值就會報告為NA_character_。

如果我用

 a=0; is.numeric(a)
  for(c in selPOGs2[,1])
  {b <- as.character(c) 
      if(1==1) 
  }

再次將c或b [1]的值報告為“ 14297062”,例如

您可以使用

sum(is.na(selPOGs2$GeneID))

計算NA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM