在绘制数据子集时,如何删除geom_bar中的NA?

时间:2014-04-07 09:13:02

标签: r ggplot2 na

这与问题here有关,但建议的解决方案在我的案例中不起作用。

我已经发布了关于我的大data.frame here的问题,但如果您只是想下载它(> 2000行),请通过this link完成。

因此以下代码用于在geom_bar

中创建一个简单的ggplot2条形图
gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SoExample$Structural_motif=="NDBL/beta-sheets",],
aes(x=p53_IHC))
gghist+geom_bar()

这会产生这个情节A barplot with lots of "NA's"

如您所见,NA也被绘制出来。我已经尝试了各种选项来删除NA,包括 以下

gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets",], aes(x=p53_IHC), drop=TRUE)
gghist+geom_bar()
gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets",], aes(x=p53_IHC), na.rm=TRUE)
gghist+geom_bar()
gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets",], aes(x=p53_IHC, na.rm=TRUE))
gghist+geom_bar()
gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets",], aes(x=factor(p53_IHC), na.rm=TRUE))
gghist+geom_bar()
 gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets",], aes(x=factor(p53_IHC))
    gghist+geom_bar(na.rm=TRUE)

然后我尝试了这个

gghist_2<-ggplot(na.omit(ARCTP53_SOExample[ARCTP53_EsoMutClean$Structural_motif=="NDBL/beta-sheets",]), aes(x=p53_IHC))
gghist_2+geom_bar()

这给了我 此错误

Error in as.environment(where) : 'where' is missing

此外,我尝试 ,这会给我以下错误

datasub<-ARCTP53_SOExample[!is.na(ARCTP53_SOExample)]
gghist_3<-ggplot(datasub[datasub$Structural_motif=="NDBL/beta-sheets",])
Error in datasub$Structural_motif : 
  $ operator is invalid for atomic vectors

这段代码也不起作用:

gghist_3<-ggplot(datasub, aes(x=p53_IHC))
Error: ggplot2 doesn't know how to deal with data of class character

那么,有没有人知道一个简单的解决方案呢? data.frame很大并且本身有很多缺少的数据,具体取决于我查看的列,但并非所有行中都缺少所有丢失的数据,因此删除任何一行都有#34 ; NA&#34;在其中,将击败这一点。

非常感谢帮助。

亲切的问候,

奥利弗

编辑按照Daniel的评论,我将按照下面的代码进行操作。如你所见,问题仍未解决。遗憾。

gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SOExample$Structural_motif=="NDBL/beta-sheets" & is.na(ARCTP53_SOExample$p53_IHC) == F,], aes(x=p53_IHC))
gghist+geom_bar()

更新:重新运行代码,由于某种原因,它现在可以正常工作。得到以下情节:

It works

NAs reduced but still there

1 个答案:

答案 0 :(得分:1)

我无法下载您的数据,但这应该有效:

gghist<-ggplot(ARCTP53_SOExample[ARCTP53_SoExample$Structural_motif=="NDBL/beta-sheets" & is.na(ARCTP53_SOExample$p53_IHC) == F,], aes(x=p53_IHC))
gghist+geom_bar()