【发布时间】:2013-06-17 11:17:24
【问题描述】:
我正在尝试在 ggplot2 中绘制一个简单的箱线图。我有物种丰富度与土地利用类别。但是,我的数据中有 2 个 NA。出于某种奇怪的原因,它们正在被绘制,即使它们被 R 理解为 NA。有什么建议可以删除它们吗?
我使用的代码是:
ggplot(data, aes(x=luse, y=rich))+
geom_boxplot(mapping = NULL, data = NULL, stat = "boxplot", position = "dodge", outlier.colour = "red", outlier.shape = 16, outlier.size = 2, notch = F, notchwidth = 0.5)+
scale_x_discrete("luse", drop=T)+
geom_smooth(method="loess",aes(group=1))
但是,该图包括 2 个用于 luse 的 NA。不幸的是,我无法发布图片,但想象一下我的图表中添加了一个 NA 条。
【问题讨论】:
-
ggplot(na.omit(data), aes(x=luse, y=rich)) + ... -
非常感谢!
-
对于更一般的情况:如果数据包含除被绘制的两个变量之外的变量,
na.omit(data)将删除任何变量缺失的观察值。这可能会对您的图表和/或分析产生意想不到的后果。可以使用data=na.omit(data[,c("var1","var2",...)]),其中 var1、var2、... 是图表所需的变量。 -
+1 for @Maxim.K,我遇到了一个大数据框的确切问题,其中一个变量具有极高比例的 NA 值。我无法完全锻炼语法以摆脱我感兴趣的变量中的 NA 。但请注意,如果您只对一个变量感兴趣,就像我一样,上面的代码返回一个向量,您必须在 data.frame 中选择至少 2 列才能使其按编写方式工作。