我有一个名为“selPOGs2”的data.frame对象。在这个data.frame中我添加了一列“GeneID”。在将data.frame转换为字符后,我在“GeneID”列中添加数据。这些数据从查询返回到数据库。如果在数据库中找不到答案,则在GeneID列的相应单元格中放置NA。 该列看起来像这样:
块引用
GeneID
块引用
我想计算在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”,例如
答案 0 :(得分:1)
您可以使用
sum(is.na(selPOGs2$GeneID))
计算NA
s。