我有将近3,000只收割动物的数据集,我正在尝试按性别对长度和体重进行一些密度图绘制。 SEX变量是一个因子变量。问题在于,其中一些动物缺少性别决定,我遇到了各种各样的问题,似乎大多数问题都与这些缺失的价值观有关。
我的数据框称为CATCH,读取数据后,我将SEX变量归类为因数:
catch$SEX <- as.factor(as.character(catch$SEX))
为所有数据绘制基本密度图效果很好
ggplot(catch, aes(x = LENGTH)) +
geom_density(color="black",fill="lightblue")
但是我得到警告,“我删除了包含非限定值(stat_density)的23行”,我认为这是缺少的值。
进行按性别分组的类似情节
ggplot(catch, aes(x = LENGTH,y=..count..,fill=SEX)) +
geom_density() +
scale_color_manual(values = c("#868686FF", "#EFC000FF","#f6f6f6f6")) +
scale_fill_manual(values = c("#868686FF", "#EFC000FF","#E6E6E6E6"))
我得到完全相同的警告,但是NA并未被忽略。对于NA,有一个单独的图,因此它们是图例的一部分:
如何正确声明因子变量SEX的缺失值,以及如何从分析中忽略它们?
答案 0 :(得分:1)
在使用NAs
软件包进行绘图之前,您可以尝试过滤tidyverse
library(tidyverse)
catch %>%
filter(!is.na(SEX)) %>%
ggplot(aes(x = LENGTH,y=..count..,fill=SEX)) +
geom_density() +
scale_color_manual(values = c("#868686FF", "#EFC000FF","#f6f6f6f6")) +
scale_fill_manual(values = c("#868686FF", "#EFC000FF","#E6E6E6E6"))