【发布时间】:2019-03-12 19:46:19
【问题描述】:
所以我有一个数据框: df 并绘制它,但是 Na 太多了,效果不好。
所以我尝试用 1) 删除 Na:
df <- na.omit(df)
但是我的数据越来越乱了。 2):
df <- df[!is.na(df$column_name),]
这适用于特定的列名,但在图中我有多个带有 Na 的列名,当我尝试使用相同的命令但对于其他列名时,它会完全更改我的数据。那么任何人都可以帮助我吗?有没有办法!is.na(多个列名) 或者在 ggplot 中忽略 NA?
我正在使用这个:
df<-Ass1MatrixNoNa %>% gather(test, value, 3:5)
ggplot(df,aes(x=test,fill=value)) +
geom_bar(position=position_dodge(preserve="single"))
我得到了一个情节,但有 NA 的
然后我尝试删除 NA:
Ass1MatrixNoNa <- Ass1Matrix[!is.na(Ass1Matrix$Ass_1_hearingA),]
删除 Ass_1_hearingA Na's 但我也想要hearingB 但覆盖第一个并且仅在第二个中删除 NA:
Ass1MatrixNoNa <- Ass1Matrix[!is.na(Ass1Matrix$Ass_1_hearingB]
【问题讨论】:
-
请发布一些示例数据,展示您正在尝试的代码,并更好地描述您想要的结果。
ggplot默认忽略NAs(不绘制它们),因此不清楚您的目标与您看到的结果有何不同。如果您阅读some of the "How to ask" section in the Help center,您可能会有所帮助。另请参阅How to make a reproducible example in R/,了解有关提出问题的 R 特定建议。 -
我发布了一个我正在尝试使用的示例代码以及我得到了什么
-
根据您在下面提到的错误,您正在使用 data.table 对象,它有时可能与 data.frame 对象不同。在您的问题中包含有关您的对象的所有信息非常重要。请按照上面 Gregor 的建议,制作一个可重现的示例。
-
感谢您的代码。没有数据,我们仍然无能为力。请参阅我上面评论中的“如何在 R 中制作可重现的示例”链接,它将告诉您如何将数据添加到您的问题中。在您分享一些数据之前,我们无法提供更多帮助。