【问题标题】:Problem with missing values in a factor variable因子变量中的缺失值问题
【发布时间】:2020-05-10 00:24:01
【问题描述】:

我有一个关于近 3,000 只收获动物的数据集,我正在尝试制作一些按性别分组的长度和重量的密度图。 SEX 变量是一个因子变量。问题是其中一些动物缺少性别决定,我遇到了各种各样的问题,似乎大多数问题都与这些缺失值有关。

我的数据框叫CATCH,读取数据后,我将SEX变量归类为因子:

catch$SEX <- as.factor(as.character(catch$SEX))

为所有数据制作基本密度图效果很好

ggplot(catch, aes(x = LENGTH)) +
  geom_density(color="black",fill="lightblue")

但我收到警告“删除了 23 行包含非有限值 (stat_density)”,我认为这是缺失值。

在制作按性别分组的相似情节时

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 的缺失值,以及如何在分析中忽略它们?

【问题讨论】:

    标签: r density-plot


    【解决方案1】:

    您可以在使用tidyverse 包进行绘图之前尝试过滤NAs

    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"))   
    

    【讨论】:

    • 错误信息:“找不到函数 %>%”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多